home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2000 #5 / Amiga Plus CD - 2000 - No. 5.iso / Tools / Dev / fpc / mui / units / mui.pas
Encoding:
Pascal/Delphi Source File  |  2000-01-01  |  131.5 KB  |  4,203 lines

  1.  
  2. {
  3.     This file is part of the Free Pascal run time library.
  4.  
  5.     A file in Amiga system run time library.
  6.     Copyright (c) 2000 by Nils Sjoholm
  7.     member of the Amiga RTL development team.
  8.  
  9.     See the file COPYING.FPC, included in this distribution,
  10.     for details about the copyright.
  11.  
  12.     This program is distributed in the hope that it will be useful,
  13.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  14.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  15.  
  16.  **********************************************************************}
  17.  
  18. {
  19.     History:
  20.  
  21.     Added MessageBox for error report.
  22.     31 Jul 2000.
  23.  
  24.     nils.sjoholm@mailbox.swipnet.se
  25. }
  26.  
  27. unit mui;
  28.  
  29. interface
  30.  
  31.   {                                                                          
  32.     
  33.      MUI - MagicUserInterface
  34.      (c) 1993-1997 Stefan Stuntz
  35.     
  36.      Main Header File
  37.     
  38.                                                                               
  39.      Class Tree
  40.                                                                               
  41.     
  42.      rootclass                    (BOOPSI's base class)
  43.      +--Notify                   (implements notification mechanism)
  44.      !  +--Family                (handles multiple children)
  45.      !  !  +--Menustrip          (describes a complete menu strip)
  46.      !  !  +--Menu               (describes a single menu)
  47.      !  !  \--Menuitem           (describes a single menu item)
  48.      !  +--Application           (main class for all applications)
  49.      !  +--Window                (main class for all windows)
  50.      !  !  \--Aboutmui           (About window of MUI preferences)
  51.      !  +--Area                  (base class for all GUI elements)
  52.      !     +--Rectangle          (spacing object)
  53.      !     +--Balance            (balancing separator bar)
  54.      !     +--Image              (image display)
  55.      !     +--Bitmap             (draws bitmaps)
  56.      !     !  \--Bodychunk       (makes bitmap from ILBM body chunk)
  57.      !     +--Text               (text display)
  58.      !     +--Gadget             (base class for intuition gadgets)
  59.      !     !  +--String          (string gadget)
  60.      !     !  +--Boopsi          (interface to BOOPSI gadgets)
  61.      !     !  \--Prop            (proportional gadget)
  62.      !     +--Gauge              (fule gauge)
  63.      !     +--Scale              (percentage scale)
  64.      !     +--Colorfield         (field with changeable color)
  65.      !     +--List               (line-oriented list)
  66.      !     !  +--Floattext       (special list with floating text)
  67.      !     !  +--Volumelist      (special list with volumes)
  68.      !     !  +--Scrmodelist     (special list with screen modes)
  69.      !     !  \--Dirlist         (special list with files)
  70.      !     +--Numeric            (base class for slider gadgets)
  71.      !     !  +--Knob            (turning knob)
  72.      !     !  +--Levelmeter      (level display)
  73.      !     !  +--Numericbutton   (space saving popup slider)
  74.      !     !  \--Slider          (traditional slider)
  75.      !     +--Framedisplay       (private)
  76.      !     !  \--Popframe        (private)
  77.      !     +--Imagedisplay       (private)
  78.      !     !  \--Popimage        (private)
  79.      !     +--Pendisplay         (displays a pen specification)
  80.      !     !  \--Poppen          (popup button to adjust a pen spec)
  81.      !     +--Group              (groups other GUI elements)
  82.      !        +--Mccprefs        (private)
  83.      !        +--Register        (handles page groups with titles)
  84.      !        !  \--Penadjust    (group to adjust a pen)
  85.      !        +--Settingsgroup   (private)
  86.      !        +--Settings        (private)
  87.      !        +--Frameadjust     (private)
  88.      !        +--Imageadjust     (private)
  89.      !        +--Virtgroup       (handles virtual groups)
  90.      !        +--Scrollgroup     (virtual groups with scrollbars)
  91.      !        +--Scrollbar       (traditional scrollbar)
  92.      !        +--Listview        (listview)
  93.      !        +--Radio           (radio button)
  94.      !        +--Cycle           (cycle gadget)
  95.      !        +--Coloradjust     (several gadgets to adjust a color)
  96.      !        +--Palette         (complete palette gadget)
  97.      !        +--Popstring       (base class for popup objects)
  98.      !           +--Popobject    (popup aynthing in a separate window)
  99.      !           !  +--Poplist   (popup a simple listview)
  100.      !           !  \--Popscreen (popup a list of public screens)
  101.      !           \--Popasl       (popup an asl requester)
  102.      +--Semaphore                (semaphore equipped objects)
  103.         +--Applist               (private)
  104.         +--Dataspace             (handles general purpose data spaces)
  105.            \--Configdata         (private)
  106.     
  107.                                                                               
  108.      General Header File Information
  109.                                                                               
  110.     
  111.      All macro and structure definitions follow these rules:
  112.     
  113.      Name                       Meaning
  114.     
  115.      MUIC_<class>               Name of a class
  116.      MUIM_<class>_<method>      Method
  117.      MUIP_<class>_<method>      Methods parameter structure
  118.      MUIV_<class>_<method>_<x>  Special method value
  119.      MUIA_<class>_<attrib>      Attribute
  120.      MUIV_<class>_<attrib>_<x>  Special attribute value
  121.      MUIE_<error>               Error return code from MUI_Error()
  122.      MUII_<name>                Standard MUI image
  123.      MUIX_<code>                Control codes for text strings
  124.      MUIO_<name>                Object type for MUI_MakeObject()
  125.     
  126.      MUIA_... attribute definitions are followed by a comment
  127.      consisting of the three possible letters I, S and G.
  128.      I: it's possible to specify this attribute at object creation time.
  129.      S: it's possible to change this attribute with SetAttrs().
  130.      G: it's possible to get this attribute with GetAttr().
  131.     
  132.      Items marked with "Custom Class" are for use in custom classes only!
  133.    }
  134.  
  135. uses exec, intuition,utility,graphics,iffparse;
  136.  
  137.  
  138.   const
  139.      MUIMASTER_NAME  : PChar = 'muimaster.library';
  140.      MUIMASTER_VMIN = 11;
  141.      MUIMASTER_VLATEST = 19;
  142.   {
  143.      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  144.      Warning, some of the macros in this header file work only with
  145.      muimaster.library V11 and above. If you recompile your programs,
  146.      be sure to open muimaster.library with MUIMASTER_VMIN as version number.
  147.      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  148.    }
  149.  
  150.   {                                                                        
  151.      Config items for MUIM_GetConfigItem
  152.                                                                            }
  153.      MUICFG_PublicScreen = 36;
  154.   {                                                                        
  155.      Black box specification structures for images, pens, frames
  156.                                                                            }
  157.  
  158.   type
  159.      tMUI_PenSpec = record
  160.           buf : array[0..31] of char;
  161.        end;
  162.      pMUI_PenSpec = ^tMUI_PenSpec;
  163.      
  164.   {                                                                        
  165.      Public Screen Stuff
  166.                                                                            }
  167.   {
  168.      NOTE: This stuff is only included to allow compilation of the supplied
  169.            public screen manager for educational purposes. Everything
  170.            here is subject to change without notice and I guarantee to
  171.            do that just for fun!
  172.            More info can be found in the screen manager source file.
  173.    }
  174.  
  175.   const
  176.      PSD_INITIAL_NAME : PChar = '(unnamed)';
  177.      PSD_INITIAL_TITLE : PChar = 'MUI Public Screen';
  178.  
  179.  
  180.  
  181.   const
  182.      PSD_NAME_FRONTMOST : PChar = '«Frontmost»';
  183.      PSD_FILENAME_SAVE : PChar = 'envarc:mui/PublicScreens.iff';
  184.      PSD_FILENAME_USE : PChar = 'env:mui/PublicScreens.iff';
  185.      PSD_MAXLEN_NAME = 32;
  186.      PSD_MAXLEN_TITLE = 128;
  187.      PSD_MAXLEN_FONT = 48;
  188.      PSD_MAXLEN_BACKGROUND = 256;
  189.      PSD_NUMCOLS = 8;
  190.      PSD_MAXSYSPENS = 20;
  191.      PSD_NUMSYSPENS = 12;
  192.      PSD_MAXMUIPENS = 10;
  193.      PSD_NUMMUIPENS = 8;
  194.  
  195.   type
  196.      tMUI_RGBcolor = record
  197.           red : ULONG;
  198.           green : ULONG;
  199.           blue : ULONG;
  200.        end;
  201.      
  202.      pMUI_RGBColor = ^tMUI_RGBColor;
  203.  
  204.      tMUI_PubScreenDesc = record
  205.           Version : LONG;
  206.           Name : array[0..(PSD_MAXLEN_NAME)-1] of char;
  207.           Title : array[0..(PSD_MAXLEN_TITLE)-1] of char;
  208.           Font : array[0..(PSD_MAXLEN_FONT)-1] of char;
  209.           Background : array[0..(PSD_MAXLEN_BACKGROUND)-1] of char;
  210.           DisplayID : ULONG;
  211.           DisplayWidth : WORD;
  212.           DisplayHeight : WORD;
  213.           DisplayDepth : BYTE;
  214.           OverscanType : BYTE;
  215.           AutoScroll : BYTE;
  216.           NoDrag : BYTE;
  217.           Exclusive : BYTE;
  218.           Interleaved : BYTE;
  219.           SysDefault : BYTE;
  220.           Behind : BYTE;
  221.           AutoClose : BYTE;
  222.           CloseGadget : BYTE;
  223.           DummyWasForeign : BYTE;
  224.           SystemPens : array[0..(PSD_MAXSYSPENS)-1] of BYTE;
  225.           Reserved : array[0..((1 + (7 * 4)) - PSD_MAXSYSPENS)-1] of BYTE;
  226.           Palette : array[0..(PSD_NUMCOLS)-1] of tMUI_RGBcolor;
  227.           rsvd : array[0..(PSD_MAXSYSPENS - PSD_NUMCOLS)-1] of tMUI_RGBcolor;
  228.           rsvd2 : array[0..(PSD_MAXMUIPENS)-1] of tMUI_PenSpec;
  229.           Changed : LONG;
  230.           UserData : APTR;
  231.        end;
  232.      pMUI_PubScreenDesc = ^tMUI_PubScreenDesc;
  233.  
  234.      tMUIS_InfoClient = record
  235.           node : tMinNode;
  236.           task : PTask;
  237.           sigbit : ULONG;
  238.        end;
  239.      pMUIS_InfoClient = ^tMUIS_InfoClient;
  240.  
  241.   {                                                                          
  242.      Object Types for MUI_MakeObject()
  243.                                                                              }
  244.   { STRPTR label, ULONG flags  }
  245.  
  246.   const
  247.  
  248.      MUIO_Label = 1;
  249.   { STRPTR label  }
  250.      MUIO_Button = 2;
  251.   { STRPTR label  }
  252.      MUIO_Checkmark = 3;
  253.   { STRPTR label, STRPTR  entries  }
  254.      MUIO_Cycle = 4;
  255.   { STRPTR label, STRPTR  entries  }
  256.      MUIO_Radio = 5;
  257.   { STRPTR label, LONG min, LONG max  }
  258.      MUIO_Slider = 6;
  259.   { STRPTR label, LONG maxlen  }
  260.      MUIO_String = 7;
  261.   { STRPTR imagespec  }
  262.      MUIO_PopButton = 8;
  263.   { LONG space    }
  264.      MUIO_HSpace = 9;
  265.   { LONG space    }
  266.      MUIO_VSpace = 10;
  267.   { LONG space    }
  268.      MUIO_HBar = 11;
  269.   { LONG space    }
  270.      MUIO_VBar = 12;
  271.   { struct NewMenu  nm, ULONG flags  }
  272.      MUIO_MenustripNM = 13;
  273.   { STRPTR label, STRPTR shortcut, ULONG flags, ULONG data   }
  274.      MUIO_Menuitem = 14;
  275.   { STRPTR label  }
  276.      MUIO_BarTitle = 15;
  277.   { STRPTR label, LONG min, LONG max, STRPTR format  }
  278.      MUIO_NumericButton = 16;
  279.      MUIO_Menuitem_CopyStrings = 1 shl 30;
  280.      MUIO_Label_SingleFrame = 1 shl 8;
  281.      MUIO_Label_DoubleFrame = 1 shl 9;
  282.      MUIO_Label_LeftAligned = 1 shl 10;
  283.      MUIO_Label_Centered = 1 shl 11;
  284.      MUIO_Label_FreeVert = 1 shl 12;
  285.   { check for "localized" menu items such as "O\0Open"  }
  286.      MUIO_MenustripNM_CommandKeyCheck = 1 shl 0;
  287.   {                                                                          
  288.      ARexx Interface
  289.                                                                              }
  290.  
  291.   type
  292.      tMUI_Command = record
  293.           mc_Name : Pchar;
  294.           mc_Template : Pchar;
  295.           mc_Parameters : LONG;
  296.           mc_Hook : PHook;
  297.           mc_Reserved : array[0..4] of LONG;
  298.        end;
  299.      pMUI_Command = ^tMUI_Command;
  300.  
  301.  
  302.  
  303.     const
  304.      {  MC_TEMPLATE_ID : PCHar = not(0); }
  305.        MC_TEMPLATE_ID  = -1;
  306.        MUI_RXERR_BADDEFINITION = -(1);
  307.        MUI_RXERR_OUTOFMEMORY = -(2);
  308.        MUI_RXERR_UNKNOWNCOMMAND = -(3);
  309.        MUI_RXERR_BADSYNTAX = -(4);
  310.     {                                                                          
  311.        Return values for MUI_Error()
  312.                                                                                }
  313.        MUIE_OK = 0;
  314.        MUIE_OutOfMemory = 1;
  315.        MUIE_OutOfGfxMemory = 2;
  316.        MUIE_InvalidWindowObject = 3;
  317.        MUIE_MissingLibrary = 4;
  318.        MUIE_NoARexx = 5;
  319.        MUIE_SingleTask = 6;
  320.     {                                                                          
  321.        Standard MUI Images & Backgrounds
  322.                                                                                }
  323.     { These images are configured    }
  324.        MUII_WindowBack = 0;
  325.     { with the preferences program.  }
  326.        MUII_RequesterBack = 1;
  327.        MUII_ButtonBack = 2;
  328.        MUII_ListBack = 3;
  329.        MUII_TextBack = 4;
  330.        MUII_PropBack = 5;
  331.        MUII_PopupBack = 6;
  332.        MUII_SelectedBack = 7;
  333.        MUII_ListCursor = 8;
  334.        MUII_ListSelect = 9;
  335.        MUII_ListSelCur = 10;
  336.        MUII_ArrowUp = 11;
  337.        MUII_ArrowDown = 12;
  338.        MUII_ArrowLeft = 13;
  339.        MUII_ArrowRight = 14;
  340.        MUII_CheckMark = 15;
  341.        MUII_RadioButton = 16;
  342.        MUII_Cycle = 17;
  343.        MUII_PopUp = 18;
  344.        MUII_PopFile = 19;
  345.        MUII_PopDrawer = 20;
  346.        MUII_PropKnob = 21;
  347.        MUII_Drawer = 22;
  348.        MUII_HardDisk = 23;
  349.        MUII_Disk = 24;
  350.        MUII_Chip = 25;
  351.        MUII_Volume = 26;
  352.        MUII_RegisterBack = 27;
  353.        MUII_Network = 28;
  354.        MUII_Assign = 29;
  355.        MUII_TapePlay = 30;
  356.        MUII_TapePlayBack = 31;
  357.        MUII_TapePause = 32;
  358.        MUII_TapeStop = 33;
  359.        MUII_TapeRecord = 34;
  360.        MUII_GroupBack = 35;
  361.        MUII_SliderBack = 36;
  362.        MUII_SliderKnob = 37;
  363.        MUII_TapeUp = 38;
  364.        MUII_TapeDown = 39;
  365.        MUII_PageBack = 40;
  366.        MUII_ReadListBack = 41;
  367.        MUII_Count = 42;
  368.     { These are direct color     }
  369.        MUII_BACKGROUND = 128;
  370.     { combinations and are not   }
  371.        MUII_SHADOW = 129;
  372.     { affected by users prefs.   }
  373.        MUII_SHINE = 130;
  374.        MUII_FILL = 131;
  375.     { Generally, you should      }
  376.        MUII_SHADOWBACK = 132;
  377.     { avoid using them. Better   }
  378.        MUII_SHADOWFILL = 133;
  379.     { use one of the customized  }
  380.        MUII_SHADOWSHINE = 134;
  381.     { images above.              }
  382.        MUII_FILLBACK = 135;
  383.        MUII_FILLSHINE = 136;
  384.        MUII_SHINEBACK = 137;
  385.        MUII_FILLBACK2 = 138;
  386.        MUII_HSHINEBACK = 139;
  387.        MUII_HSHADOWBACK = 140;
  388.        MUII_HSHINESHINE = 141;
  389.        MUII_HSHADOWSHADOW = 142;
  390.        MUII_MARKSHINE = 143;
  391.        MUII_MARKHALFSHINE = 144;
  392.        MUII_MARKBACKGROUND = 145;
  393.        MUII_LASTPAT = 145;
  394.     {                                                                          
  395.        Special values for some methods
  396.                                                                                }
  397.        MUIV_TriggerValue = $49893131;
  398.        MUIV_NotTriggerValue = $49893133;
  399.        MUIV_EveryTime = $49893131;
  400.        MUIV_Notify_Self = 1;
  401.        MUIV_Notify_Window = 2;
  402.        MUIV_Notify_Application = 3;
  403.        MUIV_Notify_Parent = 4;
  404.  
  405.  
  406.     const
  407.        MUIV_Application_ReturnID_Quit = -(1);
  408.        MUIV_List_Insert_Top = 0;
  409.        MUIV_List_Insert_Active = -(1);
  410.        MUIV_List_Insert_Sorted = -(2);
  411.        MUIV_List_Insert_Bottom = -(3);
  412.        MUIV_List_Remove_First = 0;
  413.        MUIV_List_Remove_Active = -(1);
  414.        MUIV_List_Remove_Last = -(2);
  415.        MUIV_List_Remove_Selected = -(3);
  416.        MUIV_List_Select_Off = 0;
  417.        MUIV_List_Select_On = 1;
  418.        MUIV_List_Select_Toggle = 2;
  419.        MUIV_List_Select_Ask = 3;
  420.        MUIV_List_GetEntry_Active = -(1);
  421.        MUIV_List_Select_Active = -(1);
  422.        MUIV_List_Select_All = -(2);
  423.        MUIV_List_Redraw_Active = -(1);
  424.        MUIV_List_Redraw_All = -(2);
  425.        MUIV_List_Move_Top = 0;
  426.        MUIV_List_Move_Active = -(1);
  427.        MUIV_List_Move_Bottom = -(2);
  428.     { only valid for second parameter  }
  429.        MUIV_List_Move_Next = -(3);
  430.     { only valid for second parameter  }
  431.        MUIV_List_Move_Previous = -(4);
  432.        MUIV_List_Exchange_Top = 0;
  433.        MUIV_List_Exchange_Active = -(1);
  434.        MUIV_List_Exchange_Bottom = -(2);
  435.     { only valid for second parameter  }
  436.        MUIV_List_Exchange_Next = -(3);
  437.     { only valid for second parameter  }
  438.        MUIV_List_Exchange_Previous = -(4);
  439.        MUIV_List_Jump_Top = 0;
  440.        MUIV_List_Jump_Active = -(1);
  441.        MUIV_List_Jump_Bottom = -(2);
  442.        MUIV_List_Jump_Up = -(4);
  443.        MUIV_List_Jump_Down = -(3);
  444.        MUIV_List_NextSelected_Start = -(1);
  445.        MUIV_List_NextSelected_End = -(1);
  446.        MUIV_DragQuery_Refuse = 0;
  447.        MUIV_DragQuery_Accept = 1;
  448.        MUIV_DragReport_Abort = 0;
  449.        MUIV_DragReport_Continue = 1;
  450.        MUIV_DragReport_Lock = 2;
  451.        MUIV_DragReport_Refresh = 3;
  452.     {                                                                          
  453.        Control codes for text strings
  454.                                                                                }
  455.     { right justified  }
  456.        MUIX_R : PChar = '\033r';
  457.     { centered         }
  458.        MUIX_C : PChar = '\033c';
  459.     { left justified   }
  460.        MUIX_L : PChar = '\033l';
  461.     { normal      }
  462.        MUIX_N : PChar = '\033n';
  463.     { bold        }
  464.        MUIX_B : PChar = '\033b';
  465.     { italic      }
  466.        MUIX_I : PChar = '\033i';
  467.     { underlined  }
  468.        MUIX_U : PChar = '\033u';
  469.     { text pen            }
  470.        MUIX_PT : PChar = '\0332';
  471.     { highlight text pen  }
  472.        MUIX_PH : PChar = '\0338';
  473.     {                                                                          
  474.        Parameter structures for some classes
  475.                                                                                }
  476.  
  477.     type
  478.        tMUI_Palette_Entry = record
  479.             mpe_ID : LONG;
  480.             mpe_Red : ULONG;
  481.             mpe_Green : ULONG;
  482.             mpe_Blue : ULONG;
  483.             mpe_Group : LONG;
  484.          end;
  485.        pMUI_Palette_Entry = ^tMUI_Palette_Entry;
  486.  
  487.     const
  488.        MUIV_Palette_Entry_End = (-1);
  489.     {                            }
  490.     { Application Input Handler  }
  491.     {                            }
  492.     { see below  }
  493.  
  494.     type
  495.        tMUI_InputHandlerNode = record
  496.             ihn_Node : tMinNode;
  497.             ihn_Object : pObject_;
  498.             ihn_stuff : record
  499.                 case longint of
  500.                    0 : ( ihn_sigs : ULONG );
  501.                    1 : ( ihn_timer : record
  502.                         ihn_millis : WORD;
  503.                         ihn_current : WORD;
  504.                      end );
  505.                 end;
  506.             ihn_Flags : ULONG;
  507.             ihn_Method : ULONG;
  508.          end;
  509.     pMUI_InputHandlerNode = ^tMUI_InputHandlerNode;
  510.  
  511.     const
  512.       { ihn_Signals = ihn_stuff.ihn_sigs;
  513.        ihn_Millis = ihn_stuff.(ihn_timer.ihn_millis);
  514.        ihn_Current = ihn_stuff.(ihn_timer.ihn_current); }
  515.     { Flags for ihn_Flags  }
  516.     { set ihn_Ticks to number of 1/100 sec ticks you want to be triggered  }
  517.        MUIIHNF_TIMER = 1 shl 0;
  518.     {                       }
  519.     { Window Event Handler  }
  520.     {                       }
  521.     { don't touch!  }
  522.     { event handlers are inserted according to their priority.  }
  523.     { certain flags, see below for definitions.  }
  524.     { object which should receive MUIM_HandleEvent.  }
  525.     { if !=NULL, MUIM_HandleEvent is invoked on exactly this class with CoerceMethod().  }
  526.     { one or more IDCMP flags this handler should react on.  }
  527.  
  528.     type
  529.        tMUI_EventHandlerNode = record
  530.             ehn_Node : tMinNode;
  531.             ehn_Reserved : BYTE;
  532.             ehn_Priority : BYTE;
  533.             ehn_Flags : WORD;
  534.             ehn_Object : pObject_;
  535.             ehn_Class : PIClass;
  536.             ehn_Events : ULONG;
  537.          end;
  538.        pMUI_EventHandlerNode = ^tMUI_EventHandlerNode;
  539.     { flags for ehn_Flags  }
  540.  
  541.     const
  542.        MUI_EHF_ALWAYSKEYS = 1 shl 0;
  543.     { other values reserved for future use  }
  544.     { return values for MUIM_HandleEvent (bit-masked, all other bits must be 0)  }
  545.     { stop MUI from calling other handlers  }
  546.        MUI_EventHandlerRC_Eat = 1 shl 0;
  547.     {                     }
  548.     { List Position Test  }
  549.     {                     }
  550.     { number of entry, -1 if mouse not over valid entry  }
  551.     { numer of column, -1 if no valid column  }
  552.     { see below  }
  553.     { x offset of mouse click relative to column start  }
  554.     { y offset of mouse click from center of line
  555.                           (negative values mean click was above center,
  556.                            positive values mean click was below center)  }
  557.  
  558.     type
  559.        tMUI_List_TestPos_Result = record
  560.             entry : LONG;
  561.             column : WORD;
  562.             flags : WORD;
  563.             xoffset : WORD;
  564.             yoffset : WORD;
  565.          end;
  566.        pMUI_List_TestPos_Result = ^tMUI_List_TestPos_Result;
  567.    
  568.     const
  569.        MUI_LPR_ABOVE = 1 shl 0;
  570.        MUI_LPR_BELOW = 1 shl 1;
  571.        MUI_LPR_LEFT = 1 shl 2;
  572.        MUI_LPR_RIGHT = 1 shl 3;
  573.  
  574.     {                                                                          
  575.       
  576.        For Boopsi Image Implementors Only:
  577.       
  578.        If MUI is using a boopsi image object, it will send a special method
  579.        immediately after object creation. This method has a parameter structure
  580.        where the boopsi can fill in its minimum and maximum size and learn if
  581.        its used in a horizontal or vertical context.
  582.       
  583.        The boopsi image must use the method id (MUIM_BoopsiQuery) as return
  584.        value. That's how MUI sees that the method is implemented.
  585.       
  586.        Note: MUI does not depend on this method. If the boopsi image doesn't
  587.              implement it, minimum size will be 0 and maximum size unlimited.
  588.       
  589.                                                                                }
  590.     { this is send to the boopsi and  }
  591.  
  592.     const
  593.        MUIM_BoopsiQuery = $80427157;
  594.     { must be used as return value    }
  595.     { parameter structure  }
  596.     { always MUIM_BoopsiQuery  }
  597.     { obsolete, use mbq_RenderInfo  }
  598.     { read only, see below  }
  599.     { write only, fill in min width   }
  600.     { write only, fill in min height  }
  601.     { write only, fill in max width   }
  602.     { write only, fill in max height  }
  603.     { write only, fill in def width   }
  604.     { write only, fill in def height  }
  605.     { read only, display context  }
  606.     { may grow in future ...  }
  607.  
  608.  type
  609.        tMUI_RenderInfo = record
  610.             mri_WindowObject : pObject_;
  611.             mri_Screen : PScreen;
  612.             mri_DrawInfo : PDrawInfo;
  613.             mri_Pens : ^WORD;
  614.             mri_Window : PWindow;
  615.             mri_RastPort : PRastPort;
  616.             mri_Flags : ULONG;
  617.          end;
  618.        pMUI_RenderInfo = ^tMUI_RenderInfo;
  619.  
  620.     type
  621.        tMUI_BoopsiQuery = record
  622.             mbq_MethodID : ULONG;
  623.             mbq_Screen : PScreen;
  624.             mbq_Flags : ULONG;
  625.             mbq_MinWidth : LONG;
  626.             mbq_MinHeight : LONG;
  627.             mbq_MaxWidth : LONG;
  628.             mbq_MaxHeight : LONG;
  629.             mbq_DefWidth : LONG;
  630.             mbq_DefHeight : LONG;
  631.             mbq_RenderInfo : PMUI_RenderInfo;
  632.          end;
  633.        pMUI_BoopsiQuery = ^tMUI_BoopsiQuery; 
  634.     { old structure name  }
  635.  
  636.    
  637.        MUIP_BoopsiQuery = tMUI_BoopsiQuery;
  638.  
  639.      const
  640.     { object used in a horizontal  }
  641.        MBQF_HORIZ = 1 shl 0;
  642.     { context (else vertical)      }
  643.     { use this for unlimited MaxWidth/Height  }
  644.        MBQ_MUI_MAXMAX = 10000;
  645.     {                                          }
  646.     { Begin of automatic header file creation  }
  647.     {                                          }
  648.     {                                                                           }
  649.     {  Notify                                                                   }
  650.     {                                                                           }
  651.  
  652.  
  653.     const
  654.        MUIC_Notify : PChar = 'Notify.mui';
  655.  
  656.     { Methods  }
  657.     { V4   }
  658.  
  659.     const
  660.        MUIM_CallHook = $8042b96b;
  661.     { V12  }
  662.        MUIM_Export = $80420f1c;
  663.     { V8   }
  664.        MUIM_FindUData = $8042c196;
  665.     { V11  }
  666.        MUIM_GetConfigItem = $80423edb;
  667.     { V8   }
  668.        MUIM_GetUData = $8042ed0c;
  669.     { V12  }
  670.        MUIM_Import = $8042d012;
  671.     { V4   }
  672.        MUIM_KillNotify = $8042d240;
  673.     { V16  }
  674.        MUIM_KillNotifyObj = $8042b145;
  675.     { V7   }
  676.        MUIM_MultiSet = $8042d356;
  677.     { V9   }
  678.        MUIM_NoNotifySet = $8042216f;
  679.     { V4   }
  680.        MUIM_Notify = $8042c9cb;
  681.     { V4   }
  682.        MUIM_Set = $8042549a;
  683.     { V4   }
  684.        MUIM_SetAsString = $80422590;
  685.     { V8   }
  686.        MUIM_SetUData = $8042c920;
  687.     { V11  }
  688.        MUIM_SetUDataOnce = $8042ca19;
  689.     { V6   }
  690.        MUIM_WriteLong = $80428d86;
  691.     { V6   }
  692.        MUIM_WriteString = $80424bf4;
  693.     { ...  }
  694.  
  695.     type
  696.        tMUIP_CallHook = record
  697.             MethodID : ULONG;
  698.             Hook : PHook;
  699.             param1 : ULONG;
  700.          end;
  701.        pMUIP_CallHook = ^tMUIP_CallHook;
  702.  
  703.        tMUIP_Export = record
  704.             MethodID : ULONG;
  705.             dataspace : pObject_;
  706.          end;
  707.        pMUIP_Export = ^tMUIP_Export;
  708.  
  709.        tMUIP_FindUData = record
  710.             MethodID : ULONG;
  711.             udata : ULONG;
  712.          end;
  713.        pMUIP_FindUData = ^tMUIP_FindUData;
  714.  
  715.        tMUIP_GetConfigItem = record
  716.             MethodID : ULONG;
  717.             id : ULONG;
  718.             storage : PULONG;
  719.          end;
  720.        pMUIP_GetConfigItem = ^tMUIP_GetConfigItem;
  721.  
  722.        tMUIP_GetUData = record
  723.             MethodID : ULONG;
  724.             udata : ULONG;
  725.             attr : ULONG;
  726.             storage : PULONG;
  727.          end;
  728.        pMUIP_GetUData = ^tMUIP_GetUData;
  729.  
  730.        tMUIP_Import = record
  731.             MethodID : ULONG;
  732.             dataspace : pObject_;
  733.          end;
  734.        pMUIP_Import = ^tMUIP_Import;
  735.  
  736.        tMUIP_KillNotify = record
  737.             MethodID : ULONG;
  738.             TrigAttr : ULONG;
  739.          end;
  740.        pMUIP_KillNotify = ^tMUIP_KillNotify;
  741.  
  742.        tMUIP_KillNotifyObj = record
  743.             MethodID : ULONG;
  744.             TrigAttr : ULONG;
  745.             dest : pObject_;
  746.          end;
  747.        pMUIP_KillNotifyObj = ^tMUIP_KillNotifyObj;
  748.  
  749.     { ...  }
  750.        tMUIP_MultiSet = record
  751.             MethodID : ULONG;
  752.             attr : ULONG;
  753.             val : ULONG;
  754.             obj : APTR;
  755.          end;
  756.        pMUIP_MultiSet = ^tMUIP_MultiSet;
  757.  
  758.     { ...  }
  759.        tMUIP_NoNotifySet = record
  760.             MethodID : ULONG;
  761.             attr : ULONG;
  762.             format : Pchar;
  763.             val : ULONG;
  764.          end;
  765.        pMUIP_NoNotifySet = ^tMUIP_NoNotifySet;
  766.  
  767.     { ...  }
  768.        tMUIP_Notify = record
  769.             MethodID : ULONG;
  770.             TrigAttr : ULONG;
  771.             TrigVal : ULONG;
  772.             DestObj : APTR;
  773.             FollowParams : ULONG;
  774.          end;
  775.        pMUIP_Notify = ^tMUIP_Notify;
  776.  
  777.        tMUIP_Set = record
  778.             MethodID : ULONG;
  779.             attr : ULONG;
  780.             val : ULONG;
  781.          end;
  782.        pMUIP_Set = ^tMUIP_Set;
  783.  
  784.     { ...  }
  785.        tMUIP_SetAsString = record
  786.             MethodID : ULONG;
  787.             attr : ULONG;
  788.             format : Pchar;
  789.             val : ULONG;
  790.          end;
  791.        pMUIP_SetAsString = ^tMUIP_SetAsString;
  792.  
  793.        tMUIP_SetUData = record
  794.             MethodID : ULONG;
  795.             udata : ULONG;
  796.             attr : ULONG;
  797.             val : ULONG;
  798.          end;
  799.        pMUIP_SetUData = ^tMUIP_SetUData;
  800.  
  801.        tMUIP_SetUDataOnce = record
  802.             MethodID : ULONG;
  803.             udata : ULONG;
  804.             attr : ULONG;
  805.             val : ULONG;
  806.          end;
  807.        pMUIP_SetUDataOnce = ^tMUIP_SetUDataOnce;
  808.  
  809.        tMUIP_WriteLong = record
  810.             MethodID : ULONG;
  811.             val : ULONG;
  812.             memory : PULONG;
  813.          end;
  814.        pMUIP_WriteLong = ^tMUIP_WriteLong;
  815.  
  816.        tMUIP_WriteString = record
  817.             MethodID : ULONG;
  818.             str : Pchar;
  819.             memory : Pchar;
  820.          end;
  821.        pMUIP_WriteString = ^tMUIP_WriteString;
  822.  
  823.     { Attributes  }
  824.     { V4  ..g Object             }
  825.  
  826.     const
  827.        MUIA_ApplicationObject = $8042d3ee;
  828.     { V5  ..g struct AppMessage    }
  829.        MUIA_AppMessage = $80421955;
  830.     { V4  isg LONG               }
  831.        MUIA_HelpLine = $8042a825;
  832.     { V4  isg STRPTR             }
  833.        MUIA_HelpNode = $80420b85;
  834.     { V7  .s. BOOL               }
  835.        MUIA_NoNotify = $804237f9;
  836.     { V11 isg ULONG              }
  837.        MUIA_ObjectID = $8042d76e;
  838.     { V11 ..g Object             }
  839.        MUIA_Parent = $8042e35f;
  840.     { V4  ..g LONG               }
  841.        MUIA_Revision = $80427eaa;
  842.     { V4  isg ULONG              }
  843.        MUIA_UserData = $80420313;
  844.     { V4  ..g LONG               }
  845.        MUIA_Version = $80422301;
  846.     {                                                                           }
  847.     {  Family                                                                   }
  848.     {                                                                           }
  849.  
  850.  
  851.     const
  852.        MUIC_Family : PChar = 'Family.mui';
  853.  
  854.     { Methods  }
  855.     { V8   }
  856.  
  857.     const
  858.        MUIM_Family_AddHead = $8042e200;
  859.     { V8   }
  860.        MUIM_Family_AddTail = $8042d752;
  861.     { V8   }
  862.        MUIM_Family_Insert = $80424d34;
  863.     { V8   }
  864.        MUIM_Family_Remove = $8042f8a9;
  865.     { V8   }
  866.        MUIM_Family_Sort = $80421c49;
  867.     { V8   }
  868.        MUIM_Family_Transfer = $8042c14a;
  869.  
  870.     type
  871.        tMUIP_Family_AddHead = record
  872.             MethodID : ULONG;
  873.             obj : pObject_;
  874.          end;
  875.        pMUIP_Family_AddHead = ^tMUIP_Family_AddHead;
  876.  
  877.        tMUIP_Family_AddTail = record
  878.             MethodID : ULONG;
  879.             obj : pObject_;
  880.          end;
  881.        pMUIP_Family_AddTail = ^tMUIP_Family_AddTail;
  882.  
  883.        tMUIP_Family_Insert = record
  884.             MethodID : ULONG;
  885.             obj : pObject_;
  886.             pred : pObject_;
  887.          end;
  888.        pMUIP_Family_Insert = ^tMUIP_Family_Insert;
  889.  
  890.        tMUIP_Family_Remove = record
  891.             MethodID : ULONG;
  892.             obj : pObject_;
  893.          end;
  894.        pMUIP_Family_Remove = ^tMUIP_Family_Remove;
  895.  
  896.        tMUIP_Family_Sort = record
  897.             MethodID : ULONG;
  898.             obj : array[0..0] of pObject_;
  899.          end;
  900.        pMUIP_Family_Sort = ^tMUIP_Family_Sort;
  901.  
  902.        tMUIP_Family_Transfer = record
  903.             MethodID : ULONG;
  904.             family : pObject_;
  905.          end;
  906.        pMUIP_Family_Transfer = ^tMUIP_Family_Transfer;
  907.  
  908.     { Attributes  }
  909.     { V8  i.. Object             }
  910.  
  911.     const
  912.        MUIA_Family_Child = $8042c696;
  913.     { V8  ..g struct MinList     }
  914.        MUIA_Family_List = $80424b9e;
  915.     {                                                                           }
  916.     {  Menustrip                                                                }
  917.     {                                                                           }
  918.  
  919.  
  920.     const
  921.        MUIC_Menustrip : PChar = 'Menustrip.mui';
  922.  
  923.     { Methods  }
  924.     { Attributes  }
  925.     { V8  isg BOOL               }
  926.  
  927.     const
  928.        MUIA_Menustrip_Enabled = $8042815b;
  929.     {                                                                           }
  930.     {  Menu                                                                     }
  931.     {                                                                           }
  932.  
  933.  
  934.     const
  935.        MUIC_Menu : PChar = 'Menu.mui';
  936.  
  937.     { Methods  }
  938.     { Attributes  }
  939.     { V8  isg BOOL               }
  940.  
  941.     const
  942.        MUIA_Menu_Enabled = $8042ed48;
  943.     { V8  isg STRPTR             }
  944.        MUIA_Menu_Title = $8042a0e3;
  945.     {                                                                           }
  946.     {  Menuitem                                                                 }
  947.     {                                                                           }
  948.  
  949.  
  950.     const
  951.        MUIC_Menuitem : PChar = 'Menuitem.mui';
  952.  
  953.     { Methods  }
  954.     { Attributes  }
  955.     { V8  isg BOOL               }
  956.  
  957.     const
  958.        MUIA_Menuitem_Checked = $8042562a;
  959.     { V8  isg BOOL               }
  960.        MUIA_Menuitem_Checkit = $80425ace;
  961.     { V16 isg BOOL               }
  962.        MUIA_Menuitem_CommandString = $8042b9cc;
  963.     { V8  isg BOOL               }
  964.        MUIA_Menuitem_Enabled = $8042ae0f;
  965.     { V8  isg LONG               }
  966.        MUIA_Menuitem_Exclude = $80420bc6;
  967.     { V8  isg STRPTR             }
  968.        MUIA_Menuitem_Shortcut = $80422030;
  969.     { V8  isg STRPTR             }
  970.        MUIA_Menuitem_Title = $804218be;
  971.     { V8  isg BOOL               }
  972.        MUIA_Menuitem_Toggle = $80424d5c;
  973.     { V8  ..g struct MenuItem    }
  974.        MUIA_Menuitem_Trigger = $80426f32;
  975.        MUIV_Menuitem_Shortcut_Check = -(1);
  976.     {                                                                           }
  977.     {  Application                                                              }
  978.     {                                                                           }
  979.  
  980.  
  981.     const
  982.        MUIC_Application : PChar = 'Application.mui';
  983.  
  984.     { Methods  }
  985.     { V14  }
  986.  
  987.     const
  988.        MUIM_Application_AboutMUI = $8042d21d;
  989.     { V11  }
  990.        MUIM_Application_AddInputHandler = $8042f099;
  991.     { V11  }
  992.        MUIM_Application_CheckRefresh = $80424d68;
  993.  
  994.     { MUI_OBSOLETE  }
  995.     { V4   }
  996.  
  997.     const
  998.        MUIM_Application_InputBuffered = $80427e59;
  999.     { V4   }
  1000.        MUIM_Application_Load = $8042f90d;
  1001.     { V11  }
  1002.        MUIM_Application_NewInput = $80423ba6;
  1003.     { V11  }
  1004.        MUIM_Application_OpenConfigWindow = $804299ba;
  1005.     { V4   }
  1006.        MUIM_Application_PushMethod = $80429ef8;
  1007.     { V11  }
  1008.        MUIM_Application_RemInputHandler = $8042e7af;
  1009.     { V4   }
  1010.        MUIM_Application_ReturnID = $804276ef;
  1011.     { V4   }
  1012.        MUIM_Application_Save = $804227ef;
  1013.     { V11  }
  1014.        MUIM_Application_SetConfigItem = $80424a80;
  1015.  
  1016.     { V4   }
  1017.  
  1018.     const
  1019.        MUIM_Application_ShowHelp = $80426479;
  1020.  
  1021.     type
  1022.        tMUIP_Application_AboutMUI = record
  1023.             MethodID : ULONG;
  1024.             refwindow : pObject_;
  1025.          end;
  1026.        pMUIP_Application_AboutMUI = ^tMUIP_Application_AboutMUI;
  1027.  
  1028.        tMUIP_Application_AddInputHandler = record
  1029.             MethodID : ULONG;
  1030.             ihnode : PMUI_InputHandlerNode;
  1031.          end;
  1032.        pMUIP_Application_AddInputHandler = ^tMUIP_Application_AddInputHandler;
  1033.        
  1034.        tMUIP_Application_CheckRefresh = record
  1035.             MethodID : ULONG;
  1036.          end;
  1037.        pMUIP_Application_CheckRefresh = ^tMUIP_Application_CheckRefresh;
  1038.  
  1039.        tMUIP_Application_GetMenuCheck = record
  1040.             MethodID : ULONG;
  1041.             MenuID : ULONG;
  1042.          end;
  1043.        pMUIP_Application_GetMenuCheck = ^tMUIP_Application_GetMenuCheck;
  1044.  
  1045.        tMUIP_Application_GetMenuState = record
  1046.             MethodID : ULONG;
  1047.             MenuID : ULONG;
  1048.          end;
  1049.        pMUIP_Application_GetMenuState = ^tMUIP_Application_GetMenuState;
  1050.  
  1051.        tMUIP_Application_Input = record
  1052.             MethodID : ULONG;
  1053.             signal : PLONGBITS;
  1054.          end;
  1055.        pMUIP_Application_Input = ^tMUIP_Application_Input;
  1056.  
  1057.        tMUIP_Application_InputBuffered = record
  1058.             MethodID : ULONG;
  1059.          end;
  1060.        pMUIP_Application_InputBuffered = ^tMUIP_Application_InputBuffered;
  1061.  
  1062.        tMUIP_Application_Load = record
  1063.             MethodID : ULONG;
  1064.             name : STRPTR;
  1065.          end;
  1066.  
  1067.        tMUIP_Application_NewInput = record
  1068.             MethodID : ULONG;
  1069.             signal : PLONGBITS;
  1070.          end;
  1071.        pMUIP_Application_NewInput = ^tMUIP_Application_NewInput;
  1072.  
  1073.        tMUIP_Application_OpenConfigWindow = record
  1074.             MethodID : ULONG;
  1075.             flags : ULONG;
  1076.          end;
  1077.        pMUIP_Application_OpenConfigWindow = ^tMUIP_Application_OpenConfigWindow;
  1078.  
  1079.     { ...  }
  1080.        tMUIP_Application_PushMethod = record
  1081.             MethodID : ULONG;
  1082.             dest : pObject_;
  1083.             count : LONG;
  1084.          end;
  1085.        pMUIP_Application_PushMethod = ^tMUIP_Application_PushMethod;
  1086.  
  1087.        tMUIP_Application_RemInputHandler = record
  1088.             MethodID : ULONG;
  1089.             ihnode : PMUI_InputHandlerNode;
  1090.          end;
  1091.        pMUIP_Application_RemInputHandler = ^tMUIP_Application_RemInputHandler;
  1092.        
  1093.        tMUIP_Application_ReturnID = record
  1094.             MethodID : ULONG;
  1095.             retid : ULONG;
  1096.          end;
  1097.        pMUIP_Application_ReturnID = ^tMUIP_Application_ReturnID;
  1098.  
  1099.        tMUIP_Application_Save = record
  1100.             MethodID : ULONG;
  1101.             name : STRPTR;
  1102.          end;
  1103.  
  1104.        tMUIP_Application_SetConfigItem = record
  1105.             MethodID : ULONG;
  1106.             item : ULONG;
  1107.             data : APTR;
  1108.          end;
  1109.        pMUIP_Application_SetConfigItem = ^tMUIP_Application_SetConfigItem;
  1110.  
  1111.        tMUIP_Application_SetMenuCheck = record
  1112.             MethodID : ULONG;
  1113.             MenuID : ULONG;
  1114.             stat : LONG;
  1115.          end;
  1116.        pMUIP_Application_SetMenuCheck = ^tMUIP_Application_SetMenuCheck;
  1117.  
  1118.        tMUIP_Application_SetMenuState = record
  1119.             MethodID : ULONG;
  1120.             MenuID : ULONG;
  1121.             stat : LONG;
  1122.          end;
  1123.        pMUIP_Application_SetMenuState = ^tMUIP_Application_SetMenuState;
  1124.        
  1125.        tMUIP_Application_ShowHelp = record
  1126.             MethodID : ULONG;
  1127.             window : pObject_;
  1128.             name : Pchar;
  1129.             node : Pchar;
  1130.             line : LONG;
  1131.          end;
  1132.        pMUIP_Application_ShowHelp = ^tMUIP_Application_ShowHelp;
  1133.  
  1134.     { Attributes  }
  1135.     { V4  isg BOOL               }
  1136.  
  1137.     const
  1138.        MUIA_Application_Active = $804260ab;
  1139.     { V4  i.g STRPTR             }
  1140.        MUIA_Application_Author = $80424842;
  1141.     { V4  i.g STRPTR             }
  1142.        MUIA_Application_Base = $8042e07a;
  1143.     { V4  ..g Broker             }
  1144.        MUIA_Application_Broker = $8042dbce;
  1145.     { V4  isg struct Hook        }
  1146.        MUIA_Application_BrokerHook = $80428f4b;
  1147.     { V6  ..g struct MsgPort     }
  1148.        MUIA_Application_BrokerPort = $8042e0ad;
  1149.     { V6  i.g LONG               }
  1150.        MUIA_Application_BrokerPri = $8042c8d0;
  1151.     { V4  isg struct MUI_Command    }
  1152.        MUIA_Application_Commands = $80428648;
  1153.     { V4  i.g STRPTR             }
  1154.        MUIA_Application_Copyright = $8042ef4d;
  1155.     { V4  i.g STRPTR             }
  1156.        MUIA_Application_Description = $80421fc6;
  1157.     { V4  isg struct DiskObject    }
  1158.        MUIA_Application_DiskObject = $804235cb;
  1159.     { V4  ..g BOOL               }
  1160.        MUIA_Application_DoubleStart = $80423bc6;
  1161.     { V5  is. Object             }
  1162.        MUIA_Application_DropObject = $80421266;
  1163.     { V8  ..g BOOL               }
  1164.        MUIA_Application_ForceQuit = $804257df;
  1165.     { V8  isg STRPTR             }
  1166.        MUIA_Application_HelpFile = $804293f4;
  1167.     { V4  .sg BOOL               }
  1168.        MUIA_Application_Iconified = $8042a07f;
  1169.  
  1170.  
  1171.     const
  1172.        MUIA_Application_MenuAction = $80428961;
  1173.     { V4  ..g ULONG              }
  1174.        MUIA_Application_MenuHelp = $8042540b;
  1175.     { V8  i.. Object             }
  1176.        MUIA_Application_Menustrip = $804252d9;
  1177.     { V7  isg struct Hook        }
  1178.        MUIA_Application_RexxHook = $80427c42;
  1179.     { V4  ..g struct RxMsg       }
  1180.        MUIA_Application_RexxMsg = $8042fd88;
  1181.     { V4  .s. STRPTR             }
  1182.        MUIA_Application_RexxString = $8042d711;
  1183.     { V4  i.. BOOL               }
  1184.        MUIA_Application_SingleTask = $8042a2c8;
  1185.     { V4  .s. BOOL               }
  1186.        MUIA_Application_Sleep = $80425711;
  1187.     { V4  i.g STRPTR             }
  1188.        MUIA_Application_Title = $804281b8;
  1189.     { V10 i.. BOOL               }
  1190.        MUIA_Application_UseCommodities = $80425ee5;
  1191.     { V10 i.. BOOL               }
  1192.        MUIA_Application_UseRexx = $80422387;
  1193.     { V4  i.g STRPTR             }
  1194.        MUIA_Application_Version = $8042b33f;
  1195.     { V4  i.. Object             }
  1196.        MUIA_Application_Window = $8042bfe0;
  1197.     { V13 ..g struct List        }
  1198.        MUIA_Application_WindowList = $80429abe;
  1199.        MUIV_Application_Package_NetConnect = $a3ff7b49;
  1200.     {                                                                           }
  1201.     {  Window                                                                   }
  1202.     {                                                                           }
  1203.  
  1204.     const
  1205.        MUIC_Window : PChar = 'Window.mui';
  1206.  
  1207.     { V16  }
  1208.  
  1209.     const
  1210.        MUIM_Window_AddEventHandler = $804203b7;
  1211.  
  1212.     { V16  }
  1213.  
  1214.     const
  1215.        MUIM_Window_RemEventHandler = $8042679e;
  1216.     { V4   }
  1217.        MUIM_Window_ScreenToBack = $8042913d;
  1218.     { V4   }
  1219.        MUIM_Window_ScreenToFront = $804227a4;
  1220.  
  1221.     { V11  }
  1222.  
  1223.     const
  1224.        MUIM_Window_Snapshot = $8042945e;
  1225.     { V4   }
  1226.        MUIM_Window_ToBack = $8042152e;
  1227.     { V4   }
  1228.        MUIM_Window_ToFront = $8042554f;
  1229.  
  1230.     type
  1231.        tMUIP_Window_AddEventHandler = record
  1232.             MethodID : ULONG;
  1233.             ehnode : PMUI_EventHandlerNode;
  1234.          end;
  1235.        pMUIP_Window_AddEventHandler = ^tMUIP_Window_AddEventHandler;
  1236.  
  1237.        tMUIP_Window_GetMenuCheck = record
  1238.             MethodID : ULONG;
  1239.             MenuID : ULONG;
  1240.          end;
  1241.        pMUIP_Window_GetMenuCheck = ^tMUIP_Window_GetMenuCheck;
  1242.  
  1243.        tMUIP_Window_GetMenuState = record
  1244.             MethodID : ULONG;
  1245.             MenuID : ULONG;
  1246.          end;
  1247.         pMUIP_Window_GetMenuState =  ^tMUIP_Window_GetMenuState;
  1248.  
  1249.        tMUIP_Window_RemEventHandler = record
  1250.             MethodID : ULONG;
  1251.             ehnode : PMUI_EventHandlerNode;
  1252.          end;
  1253.        pMUIP_Window_RemEventHandler = ^tMUIP_Window_RemEventHandler;
  1254.  
  1255.        tMUIP_Window_ScreenToBack = record
  1256.             MethodID : ULONG;
  1257.          end;
  1258.        pMUIP_Window_ScreenToBack = ^tMUIP_Window_ScreenToBack;
  1259.  
  1260.        tMUIP_Window_ScreenToFront = record
  1261.             MethodID : ULONG;
  1262.          end;
  1263.        pMUIP_Window_ScreenToFront = ^tMUIP_Window_ScreenToFront;
  1264.        
  1265.        tMUIP_Window_SetCycleChain = record
  1266.             MethodID : ULONG;
  1267.             obj : array[0..0] of pObject_;
  1268.          end;
  1269.        pMUIP_Window_SetCycleChain = ^tMUIP_Window_SetCycleChain;
  1270.  
  1271.        tMUIP_Window_SetMenuCheck = record
  1272.             MethodID : ULONG;
  1273.             MenuID : ULONG;
  1274.             stat : LONG;
  1275.          end;
  1276.        pMUIP_Window_SetMenuCheck = ^tMUIP_Window_SetMenuCheck;
  1277.  
  1278.        tMUIP_Window_SetMenuState = record
  1279.             MethodID : ULONG;
  1280.             MenuID : ULONG;
  1281.             stat : LONG;
  1282.          end;
  1283.        pMUIP_Window_SetMenuState = ^tMUIP_Window_SetMenuState;
  1284.  
  1285.        tMUIP_Window_Snapshot = record
  1286.             MethodID : ULONG;
  1287.             flags : LONG;
  1288.          end;
  1289.        pMUIP_Window_Snapshot = ^tMUIP_Window_Snapshot;
  1290.  
  1291.        tMUIP_Window_ToBack = record
  1292.             MethodID : ULONG;
  1293.          end;
  1294.        pMUIP_Window_ToBack = ^tMUIP_Window_ToBack;
  1295.  
  1296.        tMUIP_Window_ToFront = record
  1297.             MethodID : ULONG;
  1298.          end;
  1299.        pMUIP_Window_ToFront = ^tMUIP_Window_ToFront;
  1300.  
  1301.     { Attributes  }
  1302.     { V4  isg BOOL               }
  1303.  
  1304.     const
  1305.        MUIA_Window_Activate = $80428d2f;
  1306.     { V4  .sg Object             }
  1307.        MUIA_Window_ActiveObject = $80427925;
  1308.     { V4  i.g LONG               }
  1309.        MUIA_Window_AltHeight = $8042cce3;
  1310.     { V4  i.g LONG               }
  1311.        MUIA_Window_AltLeftEdge = $80422d65;
  1312.     { V4  i.g LONG               }
  1313.        MUIA_Window_AltTopEdge = $8042e99b;
  1314.     { V4  i.g LONG               }
  1315.        MUIA_Window_AltWidth = $804260f4;
  1316.     { V5  i.. BOOL               }
  1317.        MUIA_Window_AppWindow = $804280cf;
  1318.     { V4  i.. BOOL               }
  1319.        MUIA_Window_Backdrop = $8042c0bb;
  1320.     { V4  i.. BOOL               }
  1321.        MUIA_Window_Borderless = $80429b79;
  1322.     { V4  i.. BOOL               }
  1323.        MUIA_Window_CloseGadget = $8042a110;
  1324.     { V4  ..g BOOL               }
  1325.        MUIA_Window_CloseRequest = $8042e86e;
  1326.     { V4  isg Object             }
  1327.        MUIA_Window_DefaultObject = $804294d7;
  1328.     { V4  i.. BOOL               }
  1329.        MUIA_Window_DepthGadget = $80421923;
  1330.     { V4  i.. BOOL               }
  1331.        MUIA_Window_DragBar = $8042045d;
  1332.     { V8  isg BOOL               }
  1333.        MUIA_Window_FancyDrawing = $8042bd0e;
  1334.     { V4  i.g LONG               }
  1335.        MUIA_Window_Height = $80425846;
  1336.     { V4  isg ULONG              }
  1337.        MUIA_Window_ID = $804201bd;
  1338.     { V4  ..g struct InputEvent    }
  1339.        MUIA_Window_InputEvent = $804247d8;
  1340.     { V4  isg BOOL               }
  1341.        MUIA_Window_IsSubWindow = $8042b5aa;
  1342.     { V4  i.g LONG               }
  1343.        MUIA_Window_LeftEdge = $80426c65;
  1344.     { MUI_OBSOLETE  }
  1345.     { V8  isg ULONG              }
  1346.  
  1347.     const
  1348.        MUIA_Window_MenuAction = $80427521;
  1349.     { V8  i.g Object             }
  1350.        MUIA_Window_Menustrip = $8042855e;
  1351.     { V10 ..g Object             }
  1352.        MUIA_Window_MouseObject = $8042bf9b;
  1353.     { V10 i.. BOOL               }
  1354.        MUIA_Window_NeedsMouseObject = $8042372a;
  1355.     { V4  is. BOOL               }
  1356.        MUIA_Window_NoMenus = $80429df5;
  1357.     { V4  .sg BOOL               }
  1358.        MUIA_Window_Open = $80428aa0;
  1359.     { V6  isg STRPTR             }
  1360.        MUIA_Window_PublicScreen = $804278e4;
  1361.     { V4  is. Object             }
  1362.        MUIA_Window_RefWindow = $804201f4;
  1363.     { V4  isg Object             }
  1364.        MUIA_Window_RootObject = $8042cba5;
  1365.     { V4  isg struct Screen      }
  1366.        MUIA_Window_Screen = $8042df4f;
  1367.     { V5  isg STRPTR             }
  1368.        MUIA_Window_ScreenTitle = $804234b0;
  1369.     { V4  i.. BOOL               }
  1370.        MUIA_Window_SizeGadget = $8042e33d;
  1371.     { V4  i.. BOOL               }
  1372.        MUIA_Window_SizeRight = $80424780;
  1373.     { V4  .sg BOOL               }
  1374.        MUIA_Window_Sleep = $8042e7db;
  1375.     { V4  isg STRPTR             }
  1376.        MUIA_Window_Title = $8042ad3d;
  1377.     { V4  i.g LONG               }
  1378.        MUIA_Window_TopEdge = $80427c66;
  1379.     { V13 isg BOOL               }
  1380.        MUIA_Window_UseBottomBorderScroller = $80424e79;
  1381.     { V13 isg BOOL               }
  1382.        MUIA_Window_UseLeftBorderScroller = $8042433e;
  1383.     { V13 isg BOOL               }
  1384.        MUIA_Window_UseRightBorderScroller = $8042c05e;
  1385.     { V4  i.g LONG               }
  1386.        MUIA_Window_Width = $8042dcae;
  1387.     { V4  ..g struct Window      }
  1388.        MUIA_Window_Window = $80426a42;
  1389.        MUIV_Window_ActiveObject_None = 0;
  1390.        MUIV_Window_ActiveObject_Next = -(1);
  1391.        MUIV_Window_ActiveObject_Prev = -(2);
  1392.   
  1393.  
  1394.     const
  1395.        MUIV_Window_AltHeight_Scaled = -(1000);
  1396.        MUIV_Window_AltLeftEdge_Centered = -(1);
  1397.        MUIV_Window_AltLeftEdge_Moused = -(2);
  1398.        MUIV_Window_AltLeftEdge_NoChange = -(1000);
  1399.        MUIV_Window_AltTopEdge_Centered = -(1);
  1400.        MUIV_Window_AltTopEdge_Moused = -(2);
  1401.  
  1402.  
  1403.     const
  1404.        MUIV_Window_AltTopEdge_NoChange = -(1000);
  1405.   
  1406.  
  1407.     const
  1408.        MUIV_Window_AltWidth_Scaled = -(1000);
  1409.   
  1410.  
  1411.  
  1412.     const
  1413.        MUIV_Window_Height_Scaled = -(1000);
  1414.        MUIV_Window_Height_Default = -(1001);
  1415.        MUIV_Window_LeftEdge_Centered = -(1);
  1416.        MUIV_Window_LeftEdge_Moused = -(2);
  1417.  
  1418.  
  1419.     const
  1420.        MUIV_Window_TopEdge_Centered = -(1);
  1421.        MUIV_Window_TopEdge_Moused = -(2);
  1422.   
  1423.  
  1424.     const
  1425.        MUIV_Window_Width_Scaled = -(1000);
  1426.        MUIV_Window_Width_Default = -(1001);
  1427.     {                                                                           }
  1428.     {  Aboutmui                                                                 }
  1429.     {                                                                           }
  1430.  
  1431.  
  1432.     const
  1433.        MUIC_Aboutmui : PChar = 'Aboutmui.mui';
  1434.  
  1435.     { Methods  }
  1436.     { Attributes  }
  1437.     { V11 i.. Object             }
  1438.  
  1439.     const
  1440.        MUIA_Aboutmui_Application = $80422523;
  1441.     {                                                                           }
  1442.     {  Area                                                                     }
  1443.     {                                                                           }
  1444.  
  1445.  
  1446.     const
  1447.        MUIC_Area : PChar = 'Area.mui';
  1448.  
  1449.     { Methods  }
  1450.     { Custom Class  }
  1451.     { V4   }
  1452.  
  1453.     const
  1454.        MUIM_AskMinMax = $80423874;
  1455.     { Custom Class  }
  1456.     { V4   }
  1457.        MUIM_Cleanup = $8042d985;
  1458.     { V11  }
  1459.        MUIM_ContextMenuBuild = $80429d2e;
  1460.     { V11  }
  1461.        MUIM_ContextMenuChoice = $80420f0e;
  1462.     { V18  }
  1463.        MUIM_CreateBubble = $80421c41;
  1464.     { V11  }
  1465.        MUIM_CreateShortHelp = $80428e93;
  1466.     { V18  }
  1467.        MUIM_DeleteBubble = $804211af;
  1468.     { V11  }
  1469.        MUIM_DeleteShortHelp = $8042d35a;
  1470.     { V11  }
  1471.        MUIM_DragBegin = $8042c03a;
  1472.     { V11  }
  1473.        MUIM_DragDrop = $8042c555;
  1474.     { V11  }
  1475.        MUIM_DragFinish = $804251f0;
  1476.     { V11  }
  1477.        MUIM_DragQuery = $80420261;
  1478.     { V11  }
  1479.        MUIM_DragReport = $8042edad;
  1480.     { Custom Class  }
  1481.     { V4   }
  1482.        MUIM_Draw = $80426f3f;
  1483.     { V11  }
  1484.        MUIM_DrawBackground = $804238ca;
  1485.     { Custom Class  }
  1486.     { V16  }
  1487.        MUIM_HandleEvent = $80426d66;
  1488.     { Custom Class  }
  1489.     { V4   }
  1490.        MUIM_HandleInput = $80422a1a;
  1491.     { Custom Class  }
  1492.     { V4   }
  1493.        MUIM_Hide = $8042f20f;
  1494.     { Custom Class  }
  1495.     { V4   }
  1496.        MUIM_Setup = $80428354;
  1497.     { Custom Class  }
  1498.     { V4   }
  1499.        MUIM_Show = $8042cc84;
  1500.  
  1501.     type
  1502.  
  1503.      { MUI_MinMax structure holds information about minimum, maximum
  1504.        and default dimensions of an object.  }
  1505.        tMUI_MinMax = record
  1506.             MinWidth : WORD;
  1507.             MinHeight : WORD;
  1508.             MaxWidth : WORD;
  1509.             MaxHeight : WORD;
  1510.             DefWidth : WORD;
  1511.             DefHeight : WORD;
  1512.          end;
  1513.        pMUI_MinMax = ^tMUI_MinMax;
  1514.  
  1515.        tMUIP_AskMinMax = record
  1516.             MethodID : ULONG;
  1517.             MinMaxInfo : PMUI_MinMax;
  1518.          end;
  1519.        pMUIP_AskMinMax = ^tMUIP_AskMinMax;
  1520.  
  1521.     { Custom Class  }
  1522.        tMUIP_Cleanup = record
  1523.             MethodID : ULONG;
  1524.          end;
  1525.        pMUIP_Cleanup  = ^tMUIP_Cleanup;
  1526.  
  1527.     { Custom Class  }
  1528.        tMUIP_ContextMenuBuild = record
  1529.             MethodID : ULONG;
  1530.             mx : LONG;
  1531.             my : LONG;
  1532.          end;
  1533.        pMUIP_ContextMenuBuild = ^tMUIP_ContextMenuBuild;
  1534.  
  1535.        tMUIP_ContextMenuChoice = record
  1536.             MethodID : ULONG;
  1537.             item : pObject_;
  1538.          end;
  1539.        pMUIP_ContextMenuChoice = ^tMUIP_ContextMenuChoice;
  1540.  
  1541.        tMUIP_CreateBubble = record
  1542.             MethodID : ULONG;
  1543.             x : LONG;
  1544.             y : LONG;
  1545.             txt : Pchar;
  1546.             flags : ULONG;
  1547.          end;
  1548.        pMUIP_CreateBubble = ^tMUIP_CreateBubble;
  1549.  
  1550.        tMUIP_CreateShortHelp = record
  1551.             MethodID : ULONG;
  1552.             mx : LONG;
  1553.             my : LONG;
  1554.          end;
  1555.        pMUIP_CreateShortHelp = ^tMUIP_CreateShortHelp;
  1556.  
  1557.        tMUIP_DeleteBubble = record
  1558.             MethodID : ULONG;
  1559.             bubble : APTR;
  1560.          end;
  1561.        pMUIP_DeleteBubble = ^tMUIP_DeleteBubble;
  1562.  
  1563.        tMUIP_DeleteShortHelp = record
  1564.             MethodID : ULONG;
  1565.             help : STRPTR;
  1566.          end;
  1567.        pMUIP_DeleteShortHelp = ^tMUIP_DeleteShortHelp;
  1568.  
  1569.        tMUIP_DragBegin = record
  1570.             MethodID : ULONG;
  1571.             obj : pObject_;
  1572.          end;
  1573.        pMUIP_DragBegin = ^tMUIP_DragBegin;
  1574.  
  1575.        tMUIP_DragDrop = record
  1576.             MethodID : ULONG;
  1577.             obj : pObject_;
  1578.             x : LONG;
  1579.             y : LONG;
  1580.          end;
  1581.        pMUIP_DragDrop = ^tMUIP_DragDrop;
  1582.  
  1583.        tMUIP_DragFinish = record
  1584.             MethodID : ULONG;
  1585.             obj : pObject_;
  1586.          end;
  1587.        pMUIP_DragFinish = ^tMUIP_DragFinish;
  1588.  
  1589.        tMUIP_DragQuery = record
  1590.             MethodID : ULONG;
  1591.             obj : pObject_;
  1592.          end;
  1593.        pMUIP_DragQuery = ^tMUIP_DragQuery;
  1594.  
  1595.        tMUIP_DragReport = record
  1596.             MethodID : ULONG;
  1597.             obj : pObject_;
  1598.             x : LONG;
  1599.             y : LONG;
  1600.             update : LONG;
  1601.          end;
  1602.        pMUIP_DragReport = ^tMUIP_DragReport;
  1603.  
  1604.        tMUIP_Draw = record
  1605.             MethodID : ULONG;
  1606.             flags : ULONG;
  1607.          end;
  1608.        pMUIP_Draw = ^tMUIP_Draw;
  1609.  
  1610.     { Custom Class  }
  1611.        tMUIP_DrawBackground = record
  1612.             MethodID : ULONG;
  1613.             left : LONG;
  1614.             top : LONG;
  1615.             width : LONG;
  1616.             height : LONG;
  1617.             xoffset : LONG;
  1618.             yoffset : LONG;
  1619.             flags : LONG;
  1620.          end;
  1621.        pMUIP_DrawBackground = ^tMUIP_DrawBackground;
  1622.  
  1623.        tMUIP_HandleEvent = record
  1624.             MethodID : ULONG;
  1625.             imsg : PIntuiMessage;
  1626.             muikey : LONG;
  1627.          end;
  1628.        pMUIP_HandleEvent = ^tMUIP_HandleEvent;
  1629.  
  1630.     { Custom Class  }
  1631.        tMUIP_HandleInput = record
  1632.             MethodID : ULONG;
  1633.             imsg : PIntuiMessage;
  1634.             muikey : LONG;
  1635.          end;
  1636.        pMUIP_HandleInput = ^tMUIP_HandleInput;
  1637.  
  1638.     { Custom Class  }
  1639.        tMUIP_Hide = record
  1640.             MethodID : ULONG;
  1641.          end;
  1642.        pMUIP_Hide = ^tMUIP_Hide;
  1643.  
  1644.     { Custom Class  }
  1645.        tMUIP_Setup = record
  1646.             MethodID : ULONG;
  1647.             RenderInfo : PMUI_RenderInfo;
  1648.          end;
  1649.        pMUIP_Setup = ^tMUIP_Setup;
  1650.  
  1651.     { Custom Class  }
  1652.        tMUIP_Show = record
  1653.             MethodID : ULONG;
  1654.          end;
  1655.        pMUIP_Show = ^tMUIP_Show;
  1656.  
  1657.     { Custom Class  }
  1658.     { Attributes  }
  1659.     { V4  is. LONG               }
  1660.  
  1661.     const
  1662.        MUIA_Background = $8042545b;
  1663.     { V4  ..g LONG               }
  1664.        MUIA_BottomEdge = $8042e552;
  1665.     { V11 isg Object             }
  1666.        MUIA_ContextMenu = $8042b704;
  1667.     { V11 ..g Object             }
  1668.        MUIA_ContextMenuTrigger = $8042a2c1;
  1669.     { V4  isg char               }
  1670.        MUIA_ControlChar = $8042120b;
  1671.     { V11 isg LONG               }
  1672.        MUIA_CycleChain = $80421ce7;
  1673.     { V4  isg BOOL               }
  1674.        MUIA_Disabled = $80423661;
  1675.     { V11 isg BOOL               }
  1676.        MUIA_Draggable = $80420b6e;
  1677.     { V11 isg BOOL               }
  1678.        MUIA_Dropable = $8042fbce;
  1679.  
  1680.     { V4  is. BOOL               }
  1681.  
  1682.     const
  1683.        MUIA_FillArea = $804294a3;
  1684.     { V4  i.. LONG               }
  1685.        MUIA_FixHeight = $8042a92b;
  1686.     { V4  i.. STRPTR             }
  1687.        MUIA_FixHeightTxt = $804276f2;
  1688.     { V4  i.. LONG               }
  1689.        MUIA_FixWidth = $8042a3f1;
  1690.     { V4  i.. STRPTR             }
  1691.        MUIA_FixWidthTxt = $8042d044;
  1692.     { V4  i.g struct TextFont    }
  1693.        MUIA_Font = $8042be50;
  1694.     { V4  i.. LONG               }
  1695.        MUIA_Frame = $8042ac64;
  1696.     { V4  i.. BOOL               }
  1697.        MUIA_FramePhantomHoriz = $8042ed76;
  1698.     { V4  i.. STRPTR             }
  1699.        MUIA_FrameTitle = $8042d1c7;
  1700.     { V4  ..g LONG               }
  1701.        MUIA_Height = $80423237;
  1702.     { V11 isg LONG               }
  1703.        MUIA_HorizDisappear = $80429615;
  1704.     { V4  isg WORD               }
  1705.        MUIA_HorizWeight = $80426db9;
  1706.     { V4  i.g LONG               }
  1707.        MUIA_InnerBottom = $8042f2c0;
  1708.     { V4  i.g LONG               }
  1709.        MUIA_InnerLeft = $804228f8;
  1710.     { V4  i.g LONG               }
  1711.        MUIA_InnerRight = $804297ff;
  1712.     { V4  i.g LONG               }
  1713.        MUIA_InnerTop = $80421eb6;
  1714.     { V4  i.. LONG               }
  1715.        MUIA_InputMode = $8042fb04;
  1716.     { V4  ..g LONG               }
  1717.        MUIA_LeftEdge = $8042bec6;
  1718.     { V11 i.. LONG               }
  1719.        MUIA_MaxHeight = $804293e4;
  1720.     { V11 i.. LONG               }
  1721.        MUIA_MaxWidth = $8042f112;
  1722.     { V4  ..g BOOL               }
  1723.        MUIA_Pressed = $80423535;
  1724.     { V4  ..g LONG               }
  1725.        MUIA_RightEdge = $8042ba82;
  1726.     { V4  isg BOOL               }
  1727.        MUIA_Selected = $8042654b;
  1728.     { V11 isg STRPTR             }
  1729.        MUIA_ShortHelp = $80428fe3;
  1730.     { V4  isg BOOL               }
  1731.        MUIA_ShowMe = $80429ba8;
  1732.     { V4  i.. BOOL               }
  1733.        MUIA_ShowSelState = $8042caac;
  1734.     { V4  ..g LONG               }
  1735.        MUIA_Timer = $80426435;
  1736.     { V4  ..g LONG               }
  1737.        MUIA_TopEdge = $8042509b;
  1738.     { V11 isg LONG               }
  1739.        MUIA_VertDisappear = $8042d12f;
  1740.     { V4  isg WORD               }
  1741.        MUIA_VertWeight = $804298d0;
  1742.     { V4  i.. WORD               }
  1743.        MUIA_Weight = $80421d1f;
  1744.     { V4  ..g LONG               }
  1745.        MUIA_Width = $8042b59c;
  1746.     { V4  ..g struct Window      }
  1747.        MUIA_Window = $80421591;
  1748.     { V4  ..g Object             }
  1749.        MUIA_WindowObject = $8042669e;
  1750.        MUIV_Font_Inherit = 0;
  1751.        MUIV_Font_Normal = -(1);
  1752.        MUIV_Font_List = -(2);
  1753.        MUIV_Font_Tiny = -(3);
  1754.        MUIV_Font_Fixed = -(4);
  1755.        MUIV_Font_Title = -(5);
  1756.        MUIV_Font_Big = -(6);
  1757.        MUIV_Font_Button = -(7);
  1758.        MUIV_Frame_None = 0;
  1759.        MUIV_Frame_Button = 1;
  1760.        MUIV_Frame_ImageButton = 2;
  1761.        MUIV_Frame_Text = 3;
  1762.        MUIV_Frame_String = 4;
  1763.        MUIV_Frame_ReadList = 5;
  1764.        MUIV_Frame_InputList = 6;
  1765.        MUIV_Frame_Prop = 7;
  1766.        MUIV_Frame_Gauge = 8;
  1767.        MUIV_Frame_Group = 9;
  1768.        MUIV_Frame_PopUp = 10;
  1769.        MUIV_Frame_Virtual = 11;
  1770.        MUIV_Frame_Slider = 12;
  1771.        MUIV_Frame_Count = 13;
  1772.        MUIV_InputMode_None = 0;
  1773.        MUIV_InputMode_RelVerify = 1;
  1774.        MUIV_InputMode_Immediate = 2;
  1775.        MUIV_InputMode_Toggle = 3;
  1776.     {                                                                           }
  1777.     {  Rectangle                                                                }
  1778.     {                                                                           }
  1779.  
  1780.  
  1781.     const
  1782.        MUIC_Rectangle : PChar = 'Rectangle.mui';
  1783.  
  1784.     { Attributes  }
  1785.     { V11 i.g STRPTR             }
  1786.  
  1787.     const
  1788.        MUIA_Rectangle_BarTitle = $80426689;
  1789.     { V7  i.g BOOL               }
  1790.        MUIA_Rectangle_HBar = $8042c943;
  1791.     { V7  i.g BOOL               }
  1792.        MUIA_Rectangle_VBar = $80422204;
  1793.     {                                                                           }
  1794.     {  Balance                                                                  }
  1795.     {                                                                           }
  1796.  
  1797.  
  1798.     const
  1799.        MUIC_Balance : PChar = 'Balance.mui';
  1800.  
  1801.     {                                                                           }
  1802.     {  Image                                                                    }
  1803.     {                                                                           }
  1804.  
  1805.  
  1806.     const
  1807.        MUIC_Image : PChar = 'Image.mui';
  1808.  
  1809.     { Attributes  }
  1810.     { V4  i.. BOOL               }
  1811.  
  1812.     const
  1813.        MUIA_Image_FontMatch = $8042815d;
  1814.     { V4  i.. BOOL               }
  1815.        MUIA_Image_FontMatchHeight = $80429f26;
  1816.     { V4  i.. BOOL               }
  1817.        MUIA_Image_FontMatchWidth = $804239bf;
  1818.     { V4  i.. BOOL               }
  1819.        MUIA_Image_FreeHoriz = $8042da84;
  1820.     { V4  i.. BOOL               }
  1821.        MUIA_Image_FreeVert = $8042ea28;
  1822.     { V4  i.. struct Image       }
  1823.        MUIA_Image_OldImage = $80424f3d;
  1824.     { V4  i.. char               }
  1825.        MUIA_Image_Spec = $804233d5;
  1826.     { V4  is. LONG               }
  1827.        MUIA_Image_State = $8042a3ad;
  1828.     {                                                                           }
  1829.     {  Bitmap                                                                   }
  1830.     {                                                                           }
  1831.  
  1832.  
  1833.     const
  1834.        MUIC_Bitmap : PChar = 'Bitmap.mui';
  1835.  
  1836.     { Attributes  }
  1837.     { V8  isg struct BitMap      }
  1838.  
  1839.     const
  1840.        MUIA_Bitmap_Bitmap = $804279bd;
  1841.     { V8  isg LONG               }
  1842.        MUIA_Bitmap_Height = $80421560;
  1843.     { V8  isg UBYTE              }
  1844.        MUIA_Bitmap_MappingTable = $8042e23d;
  1845.     { V11 isg LONG               }
  1846.        MUIA_Bitmap_Precision = $80420c74;
  1847.     { V11 ..g struct BitMap      }
  1848.        MUIA_Bitmap_RemappedBitmap = $80423a47;
  1849.     { V8  isg ULONG              }
  1850.        MUIA_Bitmap_SourceColors = $80425360;
  1851.     { V8  isg LONG               }
  1852.        MUIA_Bitmap_Transparent = $80422805;
  1853.     { V11 i.. BOOL               }
  1854.        MUIA_Bitmap_UseFriend = $804239d8;
  1855.     { V8  isg LONG               }
  1856.        MUIA_Bitmap_Width = $8042eb3a;
  1857.     {                                                                           }
  1858.     {  Bodychunk                                                                }
  1859.     {                                                                           }
  1860.  
  1861.  
  1862.     const
  1863.        MUIC_Bodychunk : PChar = 'Bodychunk.mui';
  1864.  
  1865.     { Attributes  }
  1866.     { V8  isg UBYTE              }
  1867.  
  1868.     const
  1869.        MUIA_Bodychunk_Body = $8042ca67;
  1870.     { V8  isg UBYTE              }
  1871.        MUIA_Bodychunk_Compression = $8042de5f;
  1872.     { V8  isg LONG               }
  1873.        MUIA_Bodychunk_Depth = $8042c392;
  1874.     { V8  isg UBYTE              }
  1875.        MUIA_Bodychunk_Masking = $80423b0e;
  1876.     {                                                                           }
  1877.     {  Text                                                                     }
  1878.     {                                                                           }
  1879.  
  1880.     const
  1881.        MUIC_Text : PChar = 'Text.mui';
  1882.  
  1883.     { Attributes  }
  1884.     { V4  isg STRPTR             }
  1885.  
  1886.     const
  1887.        MUIA_Text_Contents = $8042f8dc;
  1888.     { V4  i.. char               }
  1889.        MUIA_Text_HiChar = $804218ff;
  1890.     { V4  isg STRPTR             }
  1891.        MUIA_Text_PreParse = $8042566d;
  1892.     { V4  i.. BOOL               }
  1893.        MUIA_Text_SetMax = $80424d0a;
  1894.     { V4  i.. BOOL               }
  1895.        MUIA_Text_SetMin = $80424e10;
  1896.     { V11 i.. BOOL               }
  1897.        MUIA_Text_SetVMax = $80420d8b;
  1898.     {                                                                           }
  1899.     {  Gadget                                                                   }
  1900.     {                                                                           }
  1901.  
  1902.     const
  1903.        MUIC_Gadget : PChar = 'Gadget.mui';
  1904.  
  1905.     { Attributes  }
  1906.     { V11 ..g struct Gadget      }
  1907.  
  1908.     const
  1909.        MUIA_Gadget_Gadget = $8042ec1a;
  1910.     {                                                                           }
  1911.     {  String                                                                   }
  1912.     {                                                                           }
  1913.  
  1914.  
  1915.     const
  1916.        MUIC_String : PChar = 'String.mui';
  1917.  
  1918.     { Methods  }
  1919.     { Attributes  }
  1920.     { V4  isg STRPTR             }
  1921.  
  1922.     const
  1923.        MUIA_String_Accept = $8042e3e1;
  1924.     { V4  ..g STRPTR             }
  1925.        MUIA_String_Acknowledge = $8042026c;
  1926.     { V11 isg BOOL               }
  1927.        MUIA_String_AdvanceOnCR = $804226de;
  1928.     { V4  isg Object             }
  1929.        MUIA_String_AttachedList = $80420fd2;
  1930.     { V4  .sg LONG               }
  1931.        MUIA_String_BufferPos = $80428b6c;
  1932.     { V4  isg STRPTR             }
  1933.        MUIA_String_Contents = $80428ffd;
  1934.     { V4  .sg LONG               }
  1935.        MUIA_String_DisplayPos = $8042ccbf;
  1936.     { V7  isg struct Hook        }
  1937.        MUIA_String_EditHook = $80424c33;
  1938.     { V4  i.g LONG               }
  1939.        MUIA_String_Format = $80427484;
  1940.     { V4  isg ULONG              }
  1941.        MUIA_String_Integer = $80426e8a;
  1942.     { V11 isg BOOL               }
  1943.        MUIA_String_LonelyEditHook = $80421569;
  1944.     { V4  i.g LONG               }
  1945.        MUIA_String_MaxLen = $80424984;
  1946.     { V4  isg STRPTR             }
  1947.        MUIA_String_Reject = $8042179c;
  1948.     { V4  i.g BOOL               }
  1949.        MUIA_String_Secret = $80428769;
  1950.        MUIV_String_Format_Left = 0;
  1951.        MUIV_String_Format_Center = 1;
  1952.        MUIV_String_Format_Right = 2;
  1953.     {                                                                           }
  1954.     {  Boopsi                                                                   }
  1955.     {                                                                           }
  1956.  
  1957.  
  1958.     const
  1959.        MUIC_Boopsi : PChar = 'Boopsi.mui';
  1960.  
  1961.     { Attributes  }
  1962.     { V4  isg struct IClass      }
  1963.  
  1964.     const
  1965.        MUIA_Boopsi_Class = $80426999;
  1966.     { V4  isg char               }
  1967.        MUIA_Boopsi_ClassID = $8042bfa3;
  1968.     { V4  isg ULONG              }
  1969.        MUIA_Boopsi_MaxHeight = $8042757f;
  1970.     { V4  isg ULONG              }
  1971.        MUIA_Boopsi_MaxWidth = $8042bcb1;
  1972.     { V4  isg ULONG              }
  1973.        MUIA_Boopsi_MinHeight = $80422c93;
  1974.     { V4  isg ULONG              }
  1975.        MUIA_Boopsi_MinWidth = $80428fb2;
  1976.     { V4  ..g Object             }
  1977.        MUIA_Boopsi_Object = $80420178;
  1978.     { V4  i.. ULONG              }
  1979.        MUIA_Boopsi_Remember = $8042f4bd;
  1980.     { V9  i.. BOOL               }
  1981.        MUIA_Boopsi_Smart = $8042b8d7;
  1982.     { V4  isg ULONG              }
  1983.        MUIA_Boopsi_TagDrawInfo = $8042bae7;
  1984.     { V4  isg ULONG              }
  1985.        MUIA_Boopsi_TagScreen = $8042bc71;
  1986.     { V4  isg ULONG              }
  1987.        MUIA_Boopsi_TagWindow = $8042e11d;
  1988.     {                                                                           }
  1989.     {  Prop                                                                     }
  1990.     {                                                                           }
  1991.  
  1992.  
  1993.     const
  1994.        MUIC_Prop : PChar = 'Prop.mui';
  1995.  
  1996.     { Methods  }
  1997.     { V16  }
  1998.  
  1999.     const
  2000.        MUIM_Prop_Decrease = $80420dd1;
  2001.     { V16  }
  2002.        MUIM_Prop_Increase = $8042cac0;
  2003.  
  2004.     type
  2005.        tMUIP_Prop_Decrease = record
  2006.             MethodID : ULONG;
  2007.             amount : LONG;
  2008.          end;
  2009.        pMUIP_Prop_Decrease = ^tMUIP_Prop_Decrease;
  2010.  
  2011.        tMUIP_Prop_Increase = record
  2012.             MethodID : ULONG;
  2013.             amount : LONG;
  2014.          end;
  2015.        pMUIP_Prop_Increase = ^tMUIP_Prop_Increase;
  2016.  
  2017.     { Attributes  }
  2018.     { V4  isg LONG               }
  2019.  
  2020.     const
  2021.        MUIA_Prop_Entries = $8042fbdb;
  2022.     { V4  isg LONG               }
  2023.        MUIA_Prop_First = $8042d4b2;
  2024.     { V4  i.g BOOL               }
  2025.        MUIA_Prop_Horiz = $8042f4f3;
  2026.     { V4  isg BOOL               }
  2027.        MUIA_Prop_Slider = $80429c3a;
  2028.     { V13 i.. LONG               }
  2029.        MUIA_Prop_UseWinBorder = $8042deee;
  2030.     { V4  isg LONG               }
  2031.        MUIA_Prop_Visible = $8042fea6;
  2032.        MUIV_Prop_UseWinBorder_None = 0;
  2033.        MUIV_Prop_UseWinBorder_Left = 1;
  2034.        MUIV_Prop_UseWinBorder_Right = 2;
  2035.        MUIV_Prop_UseWinBorder_Bottom = 3;
  2036.     {                                                                           }
  2037.     {  Gauge                                                                    }
  2038.     {                                                                           }
  2039.  
  2040.  
  2041.     const
  2042.        MUIC_Gauge : PChar = 'Gauge.mui';
  2043.  
  2044.     { Attributes  }
  2045.     { V4  isg LONG               }
  2046.  
  2047.     const
  2048.        MUIA_Gauge_Current = $8042f0dd;
  2049.     { V4  isg BOOL               }
  2050.        MUIA_Gauge_Divide = $8042d8df;
  2051.     { V4  i.. BOOL               }
  2052.        MUIA_Gauge_Horiz = $804232dd;
  2053.     { V7  isg STRPTR             }
  2054.        MUIA_Gauge_InfoText = $8042bf15;
  2055.     { V4  isg LONG               }
  2056.        MUIA_Gauge_Max = $8042bcdb;
  2057.     {                                                                           }
  2058.     {  Scale                                                                    }
  2059.     {                                                                           }
  2060.  
  2061.  
  2062.     const
  2063.        MUIC_Scale : PChar = 'Scale.mui';
  2064.  
  2065.     { Attributes  }
  2066.     { V4  isg BOOL               }
  2067.  
  2068.     const
  2069.        MUIA_Scale_Horiz = $8042919a;
  2070.     {                                                                           }
  2071.     {  Colorfield                                                               }
  2072.     {                                                                           }
  2073.  
  2074.  
  2075.     const
  2076.        MUIC_Colorfield : PChar = 'Colorfield.mui';
  2077.  
  2078.     { Attributes  }
  2079.     { V4  isg ULONG              }
  2080.  
  2081.     const
  2082.        MUIA_Colorfield_Blue = $8042d3b0;
  2083.     { V4  isg ULONG              }
  2084.        MUIA_Colorfield_Green = $80424466;
  2085.     { V4  ..g ULONG              }
  2086.        MUIA_Colorfield_Pen = $8042713a;
  2087.     { V4  isg ULONG              }
  2088.        MUIA_Colorfield_Red = $804279f6;
  2089.     { V4  isg ULONG              }
  2090.        MUIA_Colorfield_RGB = $8042677a;
  2091.     {                                                                           }
  2092.     {  List                                                                     }
  2093.     {                                                                           }
  2094.  
  2095.  
  2096.     const
  2097.        MUIC_List : PChar = 'List.mui';
  2098.  
  2099.     { Methods  }
  2100.     { V4   }
  2101.  
  2102.     const
  2103.        MUIM_List_Clear = $8042ad89;
  2104.     { V11  }
  2105.        MUIM_List_CreateImage = $80429804;
  2106.     { V11  }
  2107.        MUIM_List_DeleteImage = $80420f58;
  2108.     { V4   }
  2109.        MUIM_List_Exchange = $8042468c;
  2110.     { V4   }
  2111.        MUIM_List_GetEntry = $804280ec;
  2112.     { V4   }
  2113.        MUIM_List_Insert = $80426c87;
  2114.     { V7   }
  2115.        MUIM_List_InsertSingle = $804254d5;
  2116.     { V4   }
  2117.        MUIM_List_Jump = $8042baab;
  2118.     { V9   }
  2119.        MUIM_List_Move = $804253c2;
  2120.     { V6   }
  2121.        MUIM_List_NextSelected = $80425f17;
  2122.     { V4   }
  2123.        MUIM_List_Redraw = $80427993;
  2124.     { V4   }
  2125.        MUIM_List_Remove = $8042647e;
  2126.     { V4   }
  2127.        MUIM_List_Select = $804252d8;
  2128.     { V4   }
  2129.        MUIM_List_Sort = $80422275;
  2130.     { V11  }
  2131.        MUIM_List_TestPos = $80425f48;
  2132.  
  2133.     type
  2134.        tMUIP_List_Clear = record
  2135.             MethodID : ULONG;
  2136.          end;
  2137.        pMUIP_List_Clear = ^tMUIP_List_Clear;
  2138.  
  2139.        tMUIP_List_CreateImage = record
  2140.             MethodID : ULONG;
  2141.             obj : pObject_;
  2142.             flags : ULONG;
  2143.          end;
  2144.        pMUIP_List_CreateImage = ^tMUIP_List_CreateImage;
  2145.  
  2146.        tMUIP_List_DeleteImage = record
  2147.             MethodID : ULONG;
  2148.             listimg : APTR;
  2149.          end;
  2150.        pMUIP_List_DeleteImage = ^tMUIP_List_DeleteImage;
  2151.  
  2152.        tMUIP_List_Exchange = record
  2153.             MethodID : ULONG;
  2154.             pos1 : LONG;
  2155.             pos2 : LONG;
  2156.          end;
  2157.        pMUIP_List_Exchange = ^tMUIP_List_Exchange;
  2158.  
  2159.        tMUIP_List_GetEntry = record
  2160.             MethodID : ULONG;
  2161.             pos : LONG;
  2162.             entry : PAPTR;
  2163.          end;
  2164.        pMUIP_List_GetEntry = ^tMUIP_List_GetEntry;
  2165.  
  2166.        tMUIP_List_Insert = record
  2167.             MethodID : ULONG;
  2168.             entries : PAPTR;
  2169.             count : LONG;
  2170.             pos : LONG;
  2171.          end;
  2172.        pMUIP_List_Insert = ^tMUIP_List_Insert;
  2173.  
  2174.        tMUIP_List_InsertSingle = record
  2175.             MethodID : ULONG;
  2176.             entry : APTR;
  2177.             pos : LONG;
  2178.          end;
  2179.        pMUIP_List_InsertSingle = ^tMUIP_List_InsertSingle;
  2180.        
  2181.        tMUIP_List_Jump = record
  2182.             MethodID : ULONG;
  2183.             pos : LONG;
  2184.          end;
  2185.        pMUIP_List_Jump = ^tMUIP_List_Jump;
  2186.  
  2187.        tMUIP_List_Move = record
  2188.             MethodID : ULONG;
  2189.             from : LONG;
  2190.             too : LONG;
  2191.          end;
  2192.        pMUIP_List_Move = ^tMUIP_List_Move;
  2193.        
  2194.        tMUIP_List_NextSelected = record
  2195.             MethodID : ULONG;
  2196.             pos : PLONG;
  2197.          end;
  2198.        pMUIP_List_NextSelected = ^tMUIP_List_NextSelected;
  2199.  
  2200.        tMUIP_List_Redraw = record
  2201.             MethodID : ULONG;
  2202.             pos : LONG;
  2203.          end;
  2204.        pMUIP_List_Redraw = ^tMUIP_List_Redraw;
  2205.        
  2206.        tMUIP_List_Remove = record
  2207.             MethodID : ULONG;
  2208.             pos : LONG;
  2209.          end;
  2210.        pMUIP_List_Remove = ^tMUIP_List_Remove;
  2211.  
  2212.        tMUIP_List_Select = record
  2213.             MethodID : ULONG;
  2214.             pos : LONG;
  2215.             seltype : LONG;
  2216.             state : PLONG;
  2217.          end;
  2218.        pMUIP_List_Select = ^tMUIP_List_Select;
  2219.  
  2220.        tMUIP_List_Sort = record
  2221.             MethodID : ULONG;
  2222.          end;
  2223.        pMUIP_List_Sort = ^tMUIP_List_Sort;
  2224.  
  2225.        tMUIP_List_TestPos = record
  2226.             MethodID : ULONG;
  2227.             x : LONG;
  2228.             y : LONG;
  2229.             res : PMUI_List_TestPos_Result;
  2230.          end;
  2231.        pMUIP_List_TestPos = ^tMUIP_List_TestPos;
  2232.  
  2233.     { Attributes  }
  2234.     { V4  isg LONG               }
  2235.  
  2236.     const
  2237.        MUIA_List_Active = $8042391c;
  2238.     { V4  i.. BOOL               }
  2239.        MUIA_List_AdjustHeight = $8042850d;
  2240.     { V4  i.. BOOL               }
  2241.        MUIA_List_AdjustWidth = $8042354a;
  2242.     { V11 isg BOOL               }
  2243.        MUIA_List_AutoVisible = $8042a445;
  2244.     { V4  is. struct Hook        }
  2245.        MUIA_List_CompareHook = $80425c14;
  2246.     { V4  is. struct Hook        }
  2247.        MUIA_List_ConstructHook = $8042894f;
  2248.     { V4  is. struct Hook        }
  2249.        MUIA_List_DestructHook = $804297ce;
  2250.     { V4  is. struct Hook        }
  2251.        MUIA_List_DisplayHook = $8042b4d5;
  2252.     { V11 isg BOOL               }
  2253.        MUIA_List_DragSortable = $80426099;
  2254.     { V11 ..g LONG               }
  2255.        MUIA_List_DropMark = $8042aba6;
  2256.     { V4  ..g LONG               }
  2257.        MUIA_List_Entries = $80421654;
  2258.     { V4  ..g LONG               }
  2259.        MUIA_List_First = $804238d4;
  2260.     { V4  isg STRPTR             }
  2261.        MUIA_List_Format = $80423c0a;
  2262.     { V9  ..g LONG               }
  2263.        MUIA_List_InsertPosition = $8042d0cd;
  2264.     { V4  i.. LONG               }
  2265.        MUIA_List_MinLineHeight = $8042d1c3;
  2266.     { V4  is. struct Hook        }
  2267.        MUIA_List_MultiTestHook = $8042c2c6;
  2268.     { V13 i.. APTR               }
  2269.        MUIA_List_Pool = $80423431;
  2270.     { V13 i.. ULONG              }
  2271.        MUIA_List_PoolPuddleSize = $8042a4eb;
  2272.     { V13 i.. ULONG              }
  2273.        MUIA_List_PoolThreshSize = $8042c48c;
  2274.     { V4  .s. BOOL               }
  2275.        MUIA_List_Quiet = $8042d8c7;
  2276.     { V11 isg BOOL               }
  2277.        MUIA_List_ShowDropMarks = $8042c6f3;
  2278.     { V4  i.. APTR               }
  2279.        MUIA_List_SourceArray = $8042c0a0;
  2280.     { V6  isg char               }
  2281.        MUIA_List_Title = $80423e66;
  2282.     { V4  ..g LONG               }
  2283.        MUIA_List_Visible = $8042191f;
  2284.        MUIV_List_Active_Off = -(1);
  2285.        MUIV_List_Active_Top = -(2);
  2286.        MUIV_List_Active_Bottom = -(3);
  2287.        MUIV_List_Active_Up = -(4);
  2288.        MUIV_List_Active_Down = -(5);
  2289.        MUIV_List_Active_PageUp = -(6);
  2290.        MUIV_List_Active_PageDown = -(7);
  2291.        MUIV_List_ConstructHook_String = -(1);
  2292.        MUIV_List_CopyHook_String = -(1);
  2293.        MUIV_List_CursorType_None = 0;
  2294.        MUIV_List_CursorType_Bar = 1;
  2295.        MUIV_List_CursorType_Rect = 2;
  2296.        MUIV_List_DestructHook_String = -(1);
  2297.     {                                                                           }
  2298.     {  Floattext                                                                }
  2299.     {                                                                           }
  2300.  
  2301.  
  2302.     const
  2303.        MUIC_Floattext : PChar = 'Floattext.mui';
  2304.  
  2305.     { Attributes  }
  2306.     { V4  isg BOOL               }
  2307.  
  2308.     const
  2309.        MUIA_Floattext_Justify = $8042dc03;
  2310.     { V4  is. STRPTR             }
  2311.        MUIA_Floattext_SkipChars = $80425c7d;
  2312.     { V4  is. LONG               }
  2313.        MUIA_Floattext_TabSize = $80427d17;
  2314.     { V4  isg STRPTR             }
  2315.        MUIA_Floattext_Text = $8042d16a;
  2316.     {                                                                           }
  2317.     {  Volumelist                                                               }
  2318.     {                                                                           }
  2319.  
  2320.  
  2321.     const
  2322.        MUIC_Volumelist : PChar = 'Volumelist.mui';
  2323.  
  2324.     {                                                                           }
  2325.     {  Scrmodelist                                                              }
  2326.     {                                                                           }
  2327.  
  2328.     const
  2329.        MUIC_Scrmodelist : PChar = 'Scrmodelist.mui';
  2330.  
  2331.     { Attributes  }
  2332.     {                                                                           }
  2333.     {  Dirlist                                                                  }
  2334.     {                                                                           }
  2335.  
  2336.  
  2337.     const
  2338.        MUIC_Dirlist : PChar = 'Dirlist.mui';
  2339.  
  2340.     { Methods  }
  2341.     { V4   }
  2342.  
  2343.     const
  2344.        MUIM_Dirlist_ReRead = $80422d71;
  2345.  
  2346.     type
  2347.        MUIP_Dirlist_ReRead = record
  2348.             MethodID : ULONG;
  2349.          end;
  2350.  
  2351.     { Attributes  }
  2352.     { V4  is. STRPTR             }
  2353.  
  2354.     const
  2355.        MUIA_Dirlist_AcceptPattern = $8042760a;
  2356.     { V4  isg STRPTR             }
  2357.        MUIA_Dirlist_Directory = $8042ea41;
  2358.     { V4  is. BOOL               }
  2359.        MUIA_Dirlist_DrawersOnly = $8042b379;
  2360.     { V4  is. BOOL               }
  2361.        MUIA_Dirlist_FilesOnly = $8042896a;
  2362.     { V4  is. BOOL               }
  2363.        MUIA_Dirlist_FilterDrawers = $80424ad2;
  2364.     { V4  is. struct Hook        }
  2365.        MUIA_Dirlist_FilterHook = $8042ae19;
  2366.     { V6  is. BOOL               }
  2367.        MUIA_Dirlist_MultiSelDirs = $80428653;
  2368.     { V4  ..g LONG               }
  2369.        MUIA_Dirlist_NumBytes = $80429e26;
  2370.     { V4  ..g LONG               }
  2371.        MUIA_Dirlist_NumDrawers = $80429cb8;
  2372.     { V4  ..g LONG               }
  2373.        MUIA_Dirlist_NumFiles = $8042a6f0;
  2374.     { V4  ..g STRPTR             }
  2375.        MUIA_Dirlist_Path = $80426176;
  2376.     { V4  is. BOOL               }
  2377.        MUIA_Dirlist_RejectIcons = $80424808;
  2378.     { V4  is. STRPTR             }
  2379.        MUIA_Dirlist_RejectPattern = $804259c7;
  2380.     { V4  is. LONG               }
  2381.        MUIA_Dirlist_SortDirs = $8042bbb9;
  2382.     { V4  is. BOOL               }
  2383.        MUIA_Dirlist_SortHighLow = $80421896;
  2384.     { V4  is. LONG               }
  2385.        MUIA_Dirlist_SortType = $804228bc;
  2386.     { V4  ..g LONG               }
  2387.        MUIA_Dirlist_Status = $804240de;
  2388.        MUIV_Dirlist_SortDirs_First = 0;
  2389.        MUIV_Dirlist_SortDirs_Last = 1;
  2390.        MUIV_Dirlist_SortDirs_Mix = 2;
  2391.        MUIV_Dirlist_SortType_Name = 0;
  2392.        MUIV_Dirlist_SortType_Date = 1;
  2393.        MUIV_Dirlist_SortType_Size = 2;
  2394.        MUIV_Dirlist_Status_Invalid = 0;
  2395.        MUIV_Dirlist_Status_Reading = 1;
  2396.        MUIV_Dirlist_Status_Valid = 2;
  2397.     {                                                                           }
  2398.     {  Numeric                                                                  }
  2399.     {                                                                           }
  2400.  
  2401.     const
  2402.        MUIC_Numeric : PChar = 'Numeric.mui';
  2403.  
  2404.     { Methods  }
  2405.     { V11  }
  2406.  
  2407.     const
  2408.        MUIM_Numeric_Decrease = $804243a7;
  2409.     { V11  }
  2410.        MUIM_Numeric_Increase = $80426ecd;
  2411.     { V11  }
  2412.        MUIM_Numeric_ScaleToValue = $8042032c;
  2413.     { V11  }
  2414.        MUIM_Numeric_SetDefault = $8042ab0a;
  2415.     { V11  }
  2416.        MUIM_Numeric_Stringify = $80424891;
  2417.     { V11  }
  2418.        MUIM_Numeric_ValueToScale = $80423e4f;
  2419.  
  2420.     type
  2421.        tMUIP_Numeric_Decrease = record
  2422.             MethodID : ULONG;
  2423.             amount : LONG;
  2424.          end;
  2425.        pMUIP_Numeric_Decrease = ^tMUIP_Numeric_Decrease;
  2426.  
  2427.        tMUIP_Numeric_Increase = record
  2428.             MethodID : ULONG;
  2429.             amount : LONG;
  2430.          end;
  2431.        pMUIP_Numeric_Increase = ^tMUIP_Numeric_Increase;
  2432.  
  2433.        tMUIP_Numeric_ScaleToValue = record
  2434.             MethodID : ULONG;
  2435.             scalemin : LONG;
  2436.             scalemax : LONG;
  2437.             scale : LONG;
  2438.          end;
  2439.        pMUIP_Numeric_ScaleToValue = ^tMUIP_Numeric_ScaleToValue;
  2440.  
  2441.        tMUIP_Numeric_SetDefault = record
  2442.             MethodID : ULONG;
  2443.          end;
  2444.        pMUIP_Numeric_SetDefault = ^tMUIP_Numeric_SetDefault;
  2445.  
  2446.        tMUIP_Numeric_Stringify = record
  2447.             MethodID : ULONG;
  2448.             value : LONG;
  2449.          end;
  2450.        pMUIP_Numeric_Stringify = ^tMUIP_Numeric_Stringify;
  2451.  
  2452.        tMUIP_Numeric_ValueToScale = record
  2453.             MethodID : ULONG;
  2454.             scalemin : LONG;
  2455.             scalemax : LONG;
  2456.          end;
  2457.        pMUIP_Numeric_ValueToScale = ^tMUIP_Numeric_ValueToScale;
  2458.  
  2459.     { Attributes  }
  2460.     { V11 isg BOOL               }
  2461.  
  2462.     const
  2463.        MUIA_Numeric_CheckAllSizes = $80421594;
  2464.     { V11 isg LONG               }
  2465.        MUIA_Numeric_Default = $804263e8;
  2466.     { V11 isg STRPTR             }
  2467.        MUIA_Numeric_Format = $804263e9;
  2468.     { V11 isg LONG               }
  2469.        MUIA_Numeric_Max = $8042d78a;
  2470.     { V11 isg LONG               }
  2471.        MUIA_Numeric_Min = $8042e404;
  2472.     { V11 isg BOOL               }
  2473.        MUIA_Numeric_Reverse = $8042f2a0;
  2474.     { V11 isg BOOL               }
  2475.        MUIA_Numeric_RevLeftRight = $804294a7;
  2476.     { V11 isg BOOL               }
  2477.        MUIA_Numeric_RevUpDown = $804252dd;
  2478.     { V11 isg LONG               }
  2479.        MUIA_Numeric_Value = $8042ae3a;
  2480.     {                                                                           }
  2481.     {  Knob                                                                     }
  2482.     {                                                                           }
  2483.  
  2484.  
  2485.     const
  2486.        MUIC_Knob : PChar = 'Knob.mui';
  2487.  
  2488.     {                                                                           }
  2489.     {  Levelmeter                                                               }
  2490.     {                                                                           }
  2491.  
  2492.  
  2493.     const
  2494.        MUIC_Levelmeter : PChar = 'Levelmeter.mui';
  2495.  
  2496.     { Attributes  }
  2497.     { V11 isg STRPTR             }
  2498.  
  2499.     const
  2500.        MUIA_Levelmeter_Label = $80420dd5;
  2501.     {                                                                           }
  2502.     {  Numericbutton                                                            }
  2503.     {                                                                           }
  2504.  
  2505.  
  2506.     const
  2507.        MUIC_Numericbutton : PChar = 'Numericbutton.mui';
  2508.  
  2509.     {                                                                           }
  2510.     {  Slider                                                                   }
  2511.     {                                                                           }
  2512.  
  2513.  
  2514.     const
  2515.        MUIC_Slider : PChar = 'Slider.mui';
  2516.  
  2517.     { Attributes  }
  2518.     { V11 isg BOOL               }
  2519.  
  2520.     const
  2521.        MUIA_Slider_Horiz = $8042fad1;
  2522.  
  2523.     { V6  i.. BOOL               }
  2524.  
  2525.     const
  2526.        MUIA_Slider_Quiet = $80420b26;
  2527.  
  2528.     {                                                                           }
  2529.     {  Framedisplay                                                             }
  2530.     {                                                                           }
  2531.  
  2532.  
  2533.     const
  2534.        MUIC_Framedisplay : PChar = 'Framedisplay.mui';
  2535.  
  2536.     { Attributes  }
  2537.     {                                                                           }
  2538.     {  Popframe                                                                 }
  2539.     {                                                                           }
  2540.  
  2541.  
  2542.     const
  2543.        MUIC_Popframe : PChar = 'Popframe.mui';
  2544.  
  2545.     {                                                                           }
  2546.     {  Imagedisplay                                                             }
  2547.     {                                                                           }
  2548.  
  2549.     const
  2550.        MUIC_Imagedisplay : PChar = 'Imagedisplay.mui';
  2551.  
  2552.     { Attributes  }
  2553.     {                                                                           }
  2554.     {  Popimage                                                                 }
  2555.     {                                                                           }
  2556.  
  2557.  
  2558.     const
  2559.        MUIC_Popimage : PChar = 'Popimage.mui';
  2560.  
  2561.     {                                                                           }
  2562.     {  Pendisplay                                                               }
  2563.     {                                                                           }
  2564.  
  2565.  
  2566.     const
  2567.        MUIC_Pendisplay : PChar = 'Pendisplay.mui';
  2568.  
  2569.     { Methods  }
  2570.     { V13  }
  2571.  
  2572.     const
  2573.        MUIM_Pendisplay_SetColormap = $80426c80;
  2574.     { V13  }
  2575.        MUIM_Pendisplay_SetMUIPen = $8042039d;
  2576.     { V13  }
  2577.        MUIM_Pendisplay_SetRGB = $8042c131;
  2578.  
  2579.     type
  2580.        MUIP_Pendisplay_SetColormap = record
  2581.             MethodID : ULONG;
  2582.             colormap : LONG;
  2583.          end;
  2584.  
  2585.        MUIP_Pendisplay_SetMUIPen = record
  2586.             MethodID : ULONG;
  2587.             muipen : LONG;
  2588.          end;
  2589.  
  2590.        MUIP_Pendisplay_SetRGB = record
  2591.             MethodID : ULONG;
  2592.             red : ULONG;
  2593.             green : ULONG;
  2594.             blue : ULONG;
  2595.          end;
  2596.  
  2597.     { Attributes  }
  2598.     { V13 ..g Object             }
  2599.  
  2600.     const
  2601.        MUIA_Pendisplay_Pen = $8042a748;
  2602.     { V13 isg Object             }
  2603.        MUIA_Pendisplay_Reference = $8042dc24;
  2604.     { V11 isg struct MUI_RGBcolor    }
  2605.        MUIA_Pendisplay_RGBcolor = $8042a1a9;
  2606.     { V11 isg struct MUI_PenSpec     }
  2607.        MUIA_Pendisplay_Spec = $8042a204;
  2608.     {                                                                           }
  2609.     {  Poppen                                                                   }
  2610.     {                                                                           }
  2611.  
  2612.  
  2613.     const
  2614.        MUIC_Poppen : PChar = 'Poppen.mui';
  2615.  
  2616.     {                                                                           }
  2617.     {  Group                                                                    }
  2618.     {                                                                           }
  2619.  
  2620.  
  2621.     const
  2622.        MUIC_Group : PChar = 'Group.mui';
  2623.  
  2624.     { Methods  }
  2625.     { V11  }
  2626.  
  2627.     const
  2628.        MUIM_Group_ExitChange = $8042d1cc;
  2629.     { V11  }
  2630.        MUIM_Group_InitChange = $80420887;
  2631.     { V4   }
  2632.        MUIM_Group_Sort = $80427417;
  2633.  
  2634.     type
  2635.        tMUIP_Group_ExitChange = record
  2636.             MethodID : ULONG;
  2637.          end;
  2638.        pMUIP_Group_ExitChange = ^tMUIP_Group_ExitChange;
  2639.  
  2640.        tMUIP_Group_InitChange = record
  2641.             MethodID : ULONG;
  2642.          end;
  2643.        pMUIP_Group_InitChange = ^tMUIP_Group_InitChange;
  2644.  
  2645.        tMUIP_Group_Sort = record
  2646.             MethodID : ULONG;
  2647.             obj : array[0..0] of pObject_;
  2648.          end;
  2649.        pMUIP_Group_Sort = ^tMUIP_Group_Sort;
  2650.  
  2651.     { Attributes  }
  2652.     { V5  isg LONG               }
  2653.  
  2654.     const
  2655.        MUIA_Group_ActivePage = $80424199;
  2656.     { V4  i.. Object             }
  2657.        MUIA_Group_Child = $804226e6;
  2658.     { V4  ..g struct List        }
  2659.        MUIA_Group_ChildList = $80424748;
  2660.     { V4  is. LONG               }
  2661.        MUIA_Group_Columns = $8042f416;
  2662.     { V4  i.. BOOL               }
  2663.        MUIA_Group_Horiz = $8042536b;
  2664.     { V4  isg LONG               }
  2665.        MUIA_Group_HorizSpacing = $8042c651;
  2666.     { V11 i.. struct Hook        }
  2667.        MUIA_Group_LayoutHook = $8042c3b2;
  2668.     { V5  i.. BOOL               }
  2669.        MUIA_Group_PageMode = $80421a5f;
  2670.     { V4  is. LONG               }
  2671.        MUIA_Group_Rows = $8042b68f;
  2672.     { V4  i.. BOOL               }
  2673.        MUIA_Group_SameHeight = $8042037e;
  2674.     { V4  i.. BOOL               }
  2675.        MUIA_Group_SameSize = $80420860;
  2676.     { V4  i.. BOOL               }
  2677.        MUIA_Group_SameWidth = $8042b3ec;
  2678.     { V4  is. LONG               }
  2679.        MUIA_Group_Spacing = $8042866d;
  2680.     { V4  isg LONG               }
  2681.        MUIA_Group_VertSpacing = $8042e1bf;
  2682.        MUIV_Group_ActivePage_First = 0;
  2683.        MUIV_Group_ActivePage_Last = -(1);
  2684.        MUIV_Group_ActivePage_Prev = -(2);
  2685.        MUIV_Group_ActivePage_Next = -(3);
  2686.        MUIV_Group_ActivePage_Advance = -(4);
  2687.     {                                                                           }
  2688.     {  Mccprefs                                                                 }
  2689.     {                                                                           }
  2690.  
  2691.  
  2692.     const
  2693.        MUIC_Mccprefs : PChar = 'Mccprefs.mui';
  2694.  
  2695.     {                                                                           }
  2696.     {  Register                                                                 }
  2697.     {                                                                           }
  2698.  
  2699.     const
  2700.        MUIC_Register : PChar = 'Register.mui';
  2701.  
  2702.     { Attributes  }
  2703.     { V7  i.g BOOL               }
  2704.  
  2705.     const
  2706.        MUIA_Register_Frame = $8042349b;
  2707.     { V7  i.g STRPTR             }
  2708.        MUIA_Register_Titles = $804297ec;
  2709.     {                                                                           }
  2710.     {  Penadjust                                                                }
  2711.     {                                                                           }
  2712.  
  2713.  
  2714.     const
  2715.        MUIC_Penadjust : PChar= 'Penadjust.mui';
  2716.  
  2717.     { Methods  }
  2718.     { Attributes  }
  2719.     { V11 i.. BOOL               }
  2720.  
  2721.     const
  2722.        MUIA_Penadjust_PSIMode = $80421cbb;
  2723.     {                                                                           }
  2724.     {  Settingsgroup                                                            }
  2725.     {                                                                           }
  2726.  
  2727.  
  2728.     const
  2729.        MUIC_Settingsgroup : PChar = 'Settingsgroup.mui';
  2730.  
  2731.     { Methods  }
  2732.     { V11  }
  2733.  
  2734.     const
  2735.        MUIM_Settingsgroup_ConfigToGadgets = $80427043;
  2736.     { V11  }
  2737.        MUIM_Settingsgroup_GadgetsToConfig = $80425242;
  2738.  
  2739.     type
  2740.        tMUIP_Settingsgroup_ConfigToGadgets = record
  2741.             MethodID : ULONG;
  2742.             configdata : pObject_;
  2743.          end;
  2744.        pMUIP_Settingsgroup_ConfigToGadgets = ^tMUIP_Settingsgroup_ConfigToGadgets;
  2745.  
  2746.        tMUIP_Settingsgroup_GadgetsToConfig = record
  2747.             MethodID : ULONG;
  2748.             configdata : pObject_;
  2749.          end;
  2750.        pMUIP_Settingsgroup_GadgetsToConfig = ^tMUIP_Settingsgroup_GadgetsToConfig;
  2751.  
  2752.     { Attributes  }
  2753.     {                                                                           }
  2754.     {  Settings                                                                 }
  2755.     {                                                                           }
  2756.  
  2757.     const
  2758.        MUIC_Settings : PChar = 'Settings.mui';
  2759.  
  2760.     { Methods  }
  2761.     { Attributes  }
  2762.     {                                                                           }
  2763.     {  Frameadjust                                                              }
  2764.     {                                                                           }
  2765.  
  2766.  
  2767.     const
  2768.        MUIC_Frameadjust : PChar = 'Frameadjust.mui';
  2769.  
  2770.     { Methods  }
  2771.     { Attributes  }
  2772.     {                                                                           }
  2773.     {  Imageadjust                                                              }
  2774.     {                                                                           }
  2775.  
  2776.  
  2777.     const
  2778.        MUIC_Imageadjust : PChar = 'Imageadjust.mui';
  2779.  
  2780.     { Methods  }
  2781.     { Attributes  }
  2782.  
  2783.     const
  2784.        MUIV_Imageadjust_Type_All = 0;
  2785.        MUIV_Imageadjust_Type_Image = 1;
  2786.        MUIV_Imageadjust_Type_Background = 2;
  2787.        MUIV_Imageadjust_Type_Pen = 3;
  2788.     {                                                                           }
  2789.     {  Virtgroup                                                                }
  2790.     {                                                                           }
  2791.  
  2792.  
  2793.     const
  2794.        MUIC_Virtgroup : PChar = 'Virtgroup.mui';
  2795.  
  2796.     { Methods  }
  2797.     { Attributes  }
  2798.     { V6  ..g LONG               }
  2799.  
  2800.     const
  2801.        MUIA_Virtgroup_Height = $80423038;
  2802.     { V11 i.. BOOL               }
  2803.        MUIA_Virtgroup_Input = $80427f7e;
  2804.     { V6  isg LONG               }
  2805.        MUIA_Virtgroup_Left = $80429371;
  2806.     { V6  isg LONG               }
  2807.        MUIA_Virtgroup_Top = $80425200;
  2808.     { V6  ..g LONG               }
  2809.        MUIA_Virtgroup_Width = $80427c49;
  2810.     {                                                                           }
  2811.     {  Scrollgroup                                                              }
  2812.     {                                                                           }
  2813.  
  2814.  
  2815.     const
  2816.        MUIC_Scrollgroup : PChar = 'Scrollgroup.mui';
  2817.  
  2818.     { Methods  }
  2819.     { Attributes  }
  2820.     { V4  i.g Object             }
  2821.  
  2822.     const
  2823.        MUIA_Scrollgroup_Contents = $80421261;
  2824.     { V9  i.. BOOL               }
  2825.        MUIA_Scrollgroup_FreeHoriz = $804292f3;
  2826.     { V9  i.. BOOL               }
  2827.        MUIA_Scrollgroup_FreeVert = $804224f2;
  2828.     { V16 ..g Object             }
  2829.        MUIA_Scrollgroup_HorizBar = $8042b63d;
  2830.     { V13 i.. BOOL               }
  2831.        MUIA_Scrollgroup_UseWinBorder = $804284c1;
  2832.     { V16 ..g Object             }
  2833.        MUIA_Scrollgroup_VertBar = $8042cdc0;
  2834.     {                                                                           }
  2835.     {  Scrollbar                                                                }
  2836.     {                                                                           }
  2837.  
  2838.  
  2839.     const
  2840.        MUIC_Scrollbar : PChar = 'Scrollbar.mui';
  2841.  
  2842.     { Attributes  }
  2843.     { V11 i.. LONG               }
  2844.  
  2845.     const
  2846.        MUIA_Scrollbar_Type = $8042fb6b;
  2847.        MUIV_Scrollbar_Type_Default = 0;
  2848.        MUIV_Scrollbar_Type_Bottom = 1;
  2849.        MUIV_Scrollbar_Type_Top = 2;
  2850.        MUIV_Scrollbar_Type_Sym = 3;
  2851.     {                                                                           }
  2852.     {  Listview                                                                 }
  2853.     {                                                                           }
  2854.  
  2855.  
  2856.     const
  2857.        MUIC_Listview : PChar = 'Listview.mui';
  2858.  
  2859.     { Attributes  }
  2860.     { V7  ..g LONG               }
  2861.  
  2862.     const
  2863.        MUIA_Listview_ClickColumn = $8042d1b3;
  2864.     { V7  isg LONG               }
  2865.        MUIA_Listview_DefClickColumn = $8042b296;
  2866.     { V4  i.g BOOL               }
  2867.        MUIA_Listview_DoubleClick = $80424635;
  2868.     { V11 isg LONG               }
  2869.        MUIA_Listview_DragType = $80425cd3;
  2870.     { V4  i.. BOOL               }
  2871.        MUIA_Listview_Input = $8042682d;
  2872.     { V4  i.g Object             }
  2873.        MUIA_Listview_List = $8042bcce;
  2874.     { V7  i.. LONG               }
  2875.        MUIA_Listview_MultiSelect = $80427e08;
  2876.     { V10 i.. BOOL               }
  2877.        MUIA_Listview_ScrollerPos = $8042b1b4;
  2878.     { V4  ..g BOOL               }
  2879.        MUIA_Listview_SelectChange = $8042178f;
  2880.        MUIV_Listview_DragType_None = 0;
  2881.        MUIV_Listview_DragType_Immediate = 1;
  2882.        MUIV_Listview_MultiSelect_None = 0;
  2883.        MUIV_Listview_MultiSelect_Default = 1;
  2884.        MUIV_Listview_MultiSelect_Shifted = 2;
  2885.        MUIV_Listview_MultiSelect_Always = 3;
  2886.        MUIV_Listview_ScrollerPos_Default = 0;
  2887.        MUIV_Listview_ScrollerPos_Left = 1;
  2888.        MUIV_Listview_ScrollerPos_Right = 2;
  2889.        MUIV_Listview_ScrollerPos_None = 3;
  2890.     {                                                                           }
  2891.     {  Radio                                                                    }
  2892.     {                                                                           }
  2893.  
  2894.  
  2895.     const
  2896.        MUIC_Radio : PChar = 'Radio.mui';
  2897.  
  2898.     { Attributes  }
  2899.     { V4  isg LONG               }
  2900.  
  2901.     const
  2902.        MUIA_Radio_Active = $80429b41;
  2903.     { V4  i.. STRPTR             }
  2904.        MUIA_Radio_Entries = $8042b6a1;
  2905.     {                                                                           }
  2906.     {  Cycle                                                                    }
  2907.     {                                                                           }
  2908.  
  2909.  
  2910.     const
  2911.        MUIC_Cycle : PChar = 'Cycle.mui';
  2912.  
  2913.     { Attributes  }
  2914.     { V4  isg LONG               }
  2915.  
  2916.     const
  2917.        MUIA_Cycle_Active = $80421788;
  2918.     { V4  i.. STRPTR             }
  2919.        MUIA_Cycle_Entries = $80420629;
  2920.        MUIV_Cycle_Active_Next = -(1);
  2921.        MUIV_Cycle_Active_Prev = -(2);
  2922.     {                                                                           }
  2923.     {  Coloradjust                                                              }
  2924.     {                                                                           }
  2925.  
  2926.  
  2927.     const
  2928.        MUIC_Coloradjust : PChar = 'Coloradjust.mui';
  2929.  
  2930.     { Methods  }
  2931.     { Attributes  }
  2932.     { V4  isg ULONG              }
  2933.  
  2934.     const
  2935.        MUIA_Coloradjust_Blue = $8042b8a3;
  2936.     { V4  isg ULONG              }
  2937.        MUIA_Coloradjust_Green = $804285ab;
  2938.     { V4  isg ULONG              }
  2939.        MUIA_Coloradjust_ModeID = $8042ec59;
  2940.     { V4  isg ULONG              }
  2941.        MUIA_Coloradjust_Red = $80420eaa;
  2942.     { V4  isg ULONG              }
  2943.        MUIA_Coloradjust_RGB = $8042f899;
  2944.     {                                                                           }
  2945.     {  Palette                                                                  }
  2946.     {                                                                           }
  2947.  
  2948.  
  2949.     const
  2950.        MUIC_Palette : PChar = 'Palette.mui';
  2951.  
  2952.     { Attributes  }
  2953.     { V6  i.g struct MUI_Palette_Entry    }
  2954.  
  2955.     const
  2956.        MUIA_Palette_Entries = $8042a3d8;
  2957.     { V6  isg BOOL               }
  2958.        MUIA_Palette_Groupable = $80423e67;
  2959.     { V6  isg char               }
  2960.        MUIA_Palette_Names = $8042c3a2;
  2961.     {                                                                           }
  2962.     {  Popstring                                                                }
  2963.     {                                                                           }
  2964.  
  2965.  
  2966.     const
  2967.        MUIC_Popstring : PChar = 'Popstring.mui';
  2968.  
  2969.     { Methods  }
  2970.     { V7   }
  2971.  
  2972.     const
  2973.        MUIM_Popstring_Close = $8042dc52;
  2974.     { V7   }
  2975.        MUIM_Popstring_Open = $804258ba;
  2976.  
  2977.     type
  2978.        tMUIP_Popstring_Close = record
  2979.             MethodID : ULONG;
  2980.             result : LONG;
  2981.          end;
  2982.        pMUIP_Popstring_Close = ^tMUIP_Popstring_Close;
  2983.  
  2984.        tMUIP_Popstring_Open = record
  2985.             MethodID : ULONG;
  2986.          end;
  2987.        pMUIP_Popstring_Open = ^tMUIP_Popstring_Open;
  2988.  
  2989.     { Attributes  }
  2990.     { V7  i.g Object             }
  2991.  
  2992.     const
  2993.        MUIA_Popstring_Button = $8042d0b9;
  2994.     { V7  isg struct Hook        }
  2995.        MUIA_Popstring_CloseHook = $804256bf;
  2996.     { V7  isg struct Hook        }
  2997.        MUIA_Popstring_OpenHook = $80429d00;
  2998.     { V7  i.g Object             }
  2999.        MUIA_Popstring_String = $804239ea;
  3000.     { V7  isg BOOL               }
  3001.        MUIA_Popstring_Toggle = $80422b7a;
  3002.     {                                                                           }
  3003.     {  Popobject                                                                }
  3004.     {                                                                           }
  3005.  
  3006.  
  3007.     const
  3008.        MUIC_Popobject : PChar = 'Popobject.mui';
  3009.  
  3010.     { Attributes  }
  3011.     { V7  isg BOOL               }
  3012.  
  3013.     const
  3014.        MUIA_Popobject_Follow = $80424cb5;
  3015.     { V7  isg BOOL               }
  3016.        MUIA_Popobject_Light = $8042a5a3;
  3017.     { V7  i.g Object             }
  3018.        MUIA_Popobject_Object = $804293e3;
  3019.     { V7  isg struct Hook        }
  3020.        MUIA_Popobject_ObjStrHook = $8042db44;
  3021.     { V7  isg struct Hook        }
  3022.        MUIA_Popobject_StrObjHook = $8042fbe1;
  3023.     { V7  isg BOOL               }
  3024.        MUIA_Popobject_Volatile = $804252ec;
  3025.     { V9  isg struct Hook        }
  3026.        MUIA_Popobject_WindowHook = $8042f194;
  3027.     {                                                                           }
  3028.     {  Poplist                                                                  }
  3029.     {                                                                           }
  3030.  
  3031.  
  3032.     const
  3033.        MUIC_Poplist : PChar = 'Poplist.mui';
  3034.  
  3035.     { Attributes  }
  3036.     { V8  i.. char               }
  3037.  
  3038.     const
  3039.        MUIA_Poplist_Array = $8042084c;
  3040.     {                                                                           }
  3041.     {  Popscreen                                                                }
  3042.     {                                                                           }
  3043.  
  3044.  
  3045.     const
  3046.        MUIC_Popscreen : PChar = 'Popscreen.mui';
  3047.  
  3048.     { Attributes  }
  3049.     {                                                                           }
  3050.     {  Popasl                                                                   }
  3051.     {                                                                           }
  3052.  
  3053.     const
  3054.        MUIC_Popasl : PChar = 'Popasl.mui';
  3055.  
  3056.     { Attributes  }
  3057.     { V7  ..g BOOL               }
  3058.  
  3059.     const
  3060.        MUIA_Popasl_Active = $80421b37;
  3061.     { V7  isg struct Hook        }
  3062.        MUIA_Popasl_StartHook = $8042b703;
  3063.     { V7  isg struct Hook        }
  3064.        MUIA_Popasl_StopHook = $8042d8d2;
  3065.     { V7  i.g ULONG              }
  3066.        MUIA_Popasl_Type = $8042df3d;
  3067.     {                                                                           }
  3068.     {  Semaphore                                                                }
  3069.     {                                                                           }
  3070.  
  3071.  
  3072.     const
  3073.        MUIC_Semaphore : PChar = 'Semaphore.mui';
  3074.  
  3075.     { Methods  }
  3076.     { V11  }
  3077.  
  3078.     const
  3079.        MUIM_Semaphore_Attempt = $80426ce2;
  3080.     { V11  }
  3081.        MUIM_Semaphore_AttemptShared = $80422551;
  3082.     { V11  }
  3083.        MUIM_Semaphore_Obtain = $804276f0;
  3084.     { V11  }
  3085.        MUIM_Semaphore_ObtainShared = $8042ea02;
  3086.     { V11  }
  3087.        MUIM_Semaphore_Release = $80421f2d;
  3088.  
  3089.     type
  3090.        tMUIP_Semaphore_Attempt = record
  3091.             MethodID : ULONG;
  3092.          end;
  3093.        pMUIP_Semaphore_Attempt = ^tMUIP_Semaphore_Attempt;
  3094.  
  3095.        tMUIP_Semaphore_AttemptShared = record
  3096.             MethodID : ULONG;
  3097.          end;
  3098.        pMUIP_Semaphore_AttemptShared = ^tMUIP_Semaphore_AttemptShared;
  3099.  
  3100.        tMUIP_Semaphore_Obtain = record
  3101.             MethodID : ULONG;
  3102.          end;
  3103.        pMUIP_Semaphore_Obtain = ^tMUIP_Semaphore_Obtain;
  3104.        
  3105.        tMUIP_Semaphore_ObtainShared = record
  3106.             MethodID : ULONG;
  3107.          end;
  3108.        pMUIP_Semaphore_ObtainShared = ^tMUIP_Semaphore_ObtainShared;
  3109.  
  3110.        tMUIP_Semaphore_Release = record
  3111.             MethodID : ULONG;
  3112.          end;
  3113.        pMUIP_Semaphore_Release = ^tMUIP_Semaphore_Release;
  3114.  
  3115.     {                                                                           }
  3116.     {  Applist                                                                  }
  3117.     {                                                                           }
  3118.  
  3119.     const
  3120.        MUIC_Applist : PChar = 'Applist.mui';
  3121.     { Methods  }
  3122.     {                                                                           }
  3123.     {  Cclist                                                                   }
  3124.     {                                                                           }
  3125.  
  3126.  
  3127.     const
  3128.        MUIC_Cclist : PChar = 'Cclist.mui';
  3129.  
  3130.     { Methods  }
  3131.     {                                                                           }
  3132.     {  Dataspace                                                                }
  3133.     {                                                                           }
  3134.  
  3135.  
  3136.     const
  3137.        MUIC_Dataspace : PChar = 'Dataspace.mui';
  3138.  
  3139.     { Methods  }
  3140.     { V11  }
  3141.  
  3142.     const
  3143.        MUIM_Dataspace_Add = $80423366;
  3144.     { V11  }
  3145.        MUIM_Dataspace_Clear = $8042b6c9;
  3146.     { V11  }
  3147.        MUIM_Dataspace_Find = $8042832c;
  3148.     { V11  }
  3149.        MUIM_Dataspace_Merge = $80423e2b;
  3150.     { V11  }
  3151.        MUIM_Dataspace_ReadIFF = $80420dfb;
  3152.     { V11  }
  3153.        MUIM_Dataspace_Remove = $8042dce1;
  3154.     { V11  }
  3155.        MUIM_Dataspace_WriteIFF = $80425e8e;
  3156.  
  3157.     type
  3158.        tMUIP_Dataspace_Add = record
  3159.             MethodID : ULONG;
  3160.             data : APTR;
  3161.             len : LONG;
  3162.             id : ULONG;
  3163.          end;
  3164.        pMUIP_Dataspace_Add = ^tMUIP_Dataspace_Add;
  3165.  
  3166.        tMUIP_Dataspace_Clear = record
  3167.             MethodID : ULONG;
  3168.          end;
  3169.        pMUIP_Dataspace_Clear = ^tMUIP_Dataspace_Clear;
  3170.  
  3171.        tMUIP_Dataspace_Find = record
  3172.             MethodID : ULONG;
  3173.             id : ULONG;
  3174.          end;
  3175.        pMUIP_Dataspace_Find = ^tMUIP_Dataspace_Find;
  3176.  
  3177.        tMUIP_Dataspace_Merge = record
  3178.             MethodID : ULONG;
  3179.             dataspace : pObject_;
  3180.          end;
  3181.        pMUIP_Dataspace_Merge = ^tMUIP_Dataspace_Merge;
  3182.  
  3183.        tMUIP_Dataspace_ReadIFF = record
  3184.             MethodID : ULONG;
  3185.             handle : PIFFHandle;
  3186.          end;
  3187.        pMUIP_Dataspace_ReadIFF = ^tMUIP_Dataspace_ReadIFF;
  3188.  
  3189.        tMUIP_Dataspace_Remove = record
  3190.             MethodID : ULONG;
  3191.             id : ULONG;
  3192.          end;
  3193.        pMUIP_Dataspace_Remove = ^tMUIP_Dataspace_Remove;
  3194.  
  3195.        tMUIP_Dataspace_WriteIFF = record
  3196.             MethodID : ULONG;
  3197.             handle : PIFFHandle;
  3198.             type_ : ULONG;
  3199.             id : ULONG;
  3200.          end;
  3201.        pMUIP_Dataspace_WriteIFF = ^tMUIP_Dataspace_WriteIFF;
  3202.  
  3203.     { Attributes  }
  3204.     { V11 i.. APTR               }
  3205.  
  3206.     const
  3207.        MUIA_Dataspace_Pool = $80424cf9;
  3208.     {                                                                           }
  3209.     {  Configdata                                                               }
  3210.     {                                                                           }
  3211.  
  3212.  
  3213.     const
  3214.        MUIC_Configdata : PChar = 'Configdata.mui';
  3215.  
  3216.     { Methods  }
  3217.     { Attributes  }
  3218.     {                                                                           }
  3219.     {  Dtpic                                                                    }
  3220.     {                                                                           }
  3221.  
  3222.  
  3223.     const
  3224.        MUIC_Dtpic : PChar = 'Dtpic.mui';
  3225.     { Attributes  }
  3226.     {                                        }
  3227.     { End of automatic header file creation  }
  3228.     {                                        }
  3229.     {                                                                        
  3230.        Structures and Macros for creating custom classes.
  3231.                                                                              }
  3232.     {
  3233.        GENERAL NOTES:
  3234.       
  3235.        - Everything described in this header file is only valid within
  3236.          MUI classes. You may never use any of these things out of
  3237.          a class, e.g. in a traditional MUI application.
  3238.       
  3239.        - Except when otherwise stated, all structures are strictly read only.
  3240.      }
  3241.     { Global information for every object  }
  3242.     { ... private data follows ...  }
  3243.  
  3244.     type
  3245.        tMUI_GlobalInfo = record
  3246.             priv0 : ULONG;
  3247.             mgi_ApplicationObject : pObject_;
  3248.          end;
  3249.        pMUI_GlobalInfo = ^tMUI_GlobalInfo;
  3250.  
  3251.     { Instance data of notify class  }
  3252.        tMUI_NotifyData = record
  3253.             mnd_GlobalInfo : PMUI_GlobalInfo;
  3254.             mnd_UserData : ULONG;
  3255.             mnd_ObjectID : ULONG;
  3256.             priv1 : ULONG;
  3257.             priv2 : ULONG;
  3258.             priv3 : ULONG;
  3259.             priv4 : ULONG;
  3260.          end;
  3261.        pMUI_NotifyData = ^tMUI_NotifyData;
  3262.    
  3263.  
  3264.     { use this if a dimension is not limited.  }
  3265.  
  3266.     const
  3267.        MUI_MAXMAX = 10000;
  3268.     { Hook message for custom layout  }
  3269.     { type of message (see defines below)                       }
  3270.     { list of this groups children, traverse with NextObject()  }
  3271.     { results for MUILM_MINMAX                                  }
  3272.     { size (and result) for MUILM_LAYOUT                        }
  3273.  
  3274.     type
  3275.        tMUI_LayoutMsg = record
  3276.             lm_Type : ULONG;
  3277.             lm_Children : PMinList;
  3278.             lm_MinMax : tMUI_MinMax;
  3279.             lm_Layout : record
  3280.                  Width : LONG;
  3281.                  Height : LONG;
  3282.                  priv5 : ULONG;
  3283.                  priv6 : ULONG;
  3284.               end;
  3285.          end;
  3286.        pMUI_LayoutMsg = ^tMUI_LayoutMsg;
  3287.  
  3288.     { MUI wants you to calc your min & max sizes  }
  3289.  
  3290.     const
  3291.        MUILM_MINMAX = 1;
  3292.     { MUI wants you to layout your children       }
  3293.        MUILM_LAYOUT = 2;
  3294.     { return this if your hook doesn't implement lm_Type  }
  3295.        MUILM_UNKNOWN = -(1);
  3296.     { (partial) instance data of area class  }
  3297.     { RenderInfo for this object  }
  3298.     { Font  }
  3299.     { min/max/default sizes  }
  3300.     { position and dimension  }
  3301.     { frame & innerspacing left offset  }
  3302.     { frame & innerspacing top offset   }
  3303.     { frame & innerspacing add. width   }
  3304.     { frame & innerspacing add. height  }
  3305.     { see definitions below  }
  3306.     { ... private data follows ...  }
  3307.  
  3308.     type
  3309.        tMUI_AreaData = record
  3310.             mad_RenderInfo : PMUI_RenderInfo;
  3311.             priv7 : ULONG;
  3312.             mad_Font : PTextFont;
  3313.             mad_MinMax : tMUI_MinMax;
  3314.             mad_Box : tIBox;
  3315.             mad_addleft : BYTE;
  3316.             mad_addtop : BYTE;
  3317.             mad_subwidth : BYTE;
  3318.             mad_subheight : BYTE;
  3319.             mad_Flags : ULONG;
  3320.          end;
  3321.       pMUI_AreaData = ^tMUI_AreaData;
  3322.  
  3323.     { Definitions for mad_Flags, other flags are private  }
  3324.     { completely redraw yourself  }
  3325.  
  3326.     const
  3327.        MADF_DRAWOBJECT = 1 shl 0;
  3328.     { only update yourself  }
  3329.        MADF_DRAWUPDATE = 1 shl 1;
  3330.     { MUI's draw pens  }
  3331.        MPEN_SHINE = 0;
  3332.        MPEN_HALFSHINE = 1;
  3333.        MPEN_BACKGROUND = 2;
  3334.        MPEN_HALFSHADOW = 3;
  3335.        MPEN_SHADOW = 4;
  3336.        MPEN_TEXT = 5;
  3337.        MPEN_FILL = 6;
  3338.        MPEN_MARK = 7;
  3339.        MPEN_COUNT = 8;
  3340.     { Mask for pens from MUI_ObtainPen()  }
  3341.        MUIPEN_MASK = $0000ffff;
  3342.   
  3343.  
  3344.     { Information on display environment  }
  3345.     { valid between MUIM_Setup/MUIM_Cleanup  }
  3346.     { valid between MUIM_Setup/MUIM_Cleanup  }
  3347.     { valid between MUIM_Setup/MUIM_Cleanup  }
  3348.     { valid between MUIM_Setup/MUIM_Cleanup  }
  3349.     { valid between MUIM_Show/MUIM_Hide  }
  3350.     { valid between MUIM_Show/MUIM_Hide  }
  3351.     { valid between MUIM_Setup/MUIM_Cleanup  }
  3352.     { ... private data follows ...  }
  3353.  
  3354.    
  3355.  
  3356.     {
  3357.        If mri_Flags & MUIMRI_RECTFILL, RectFill() is quicker
  3358.        than Move()/Draw() for horizontal or vertical lines.
  3359.        on the current display.
  3360.      }
  3361.  
  3362.     const
  3363.        MUIMRI_RECTFILL = 1 shl 0;
  3364.     {
  3365.        If mri_Flags & MUIMRI_TRUECOLOR, display environment is a
  3366.        cybergraphics emulated hicolor or true color display.
  3367.      }
  3368.        MUIMRI_TRUECOLOR = 1 shl 1;
  3369.     {
  3370.        If mri_Flags & MUIMRI_THINFRAMES, MUI uses thin frames
  3371.        (1:1) apsect ratio instead of standard 2:1 frames.
  3372.      }
  3373.        MUIMRI_THINFRAMES = 1 shl 2;
  3374.     {
  3375.        If mri_Flags & MUIMRI_REFRESHMODE, MUI is currently
  3376.        refreshing a WFLG_SIMPLEREFRESH window and is between
  3377.        a BeginRefresh()/EndRefresh() pair.
  3378.      }
  3379.        MUIMRI_REFRESHMODE = 1 shl 3;
  3380.     { the following macros can be used to get pointers to an objects
  3381.        GlobalInfo and RenderInfo structures.  }
  3382.  
  3383.     type
  3384.        t__dummyXFC2__ = record
  3385.             mnd : tMUI_NotifyData;
  3386.             mad : tMUI_AreaData;
  3387.          end;
  3388.        p__dummyXFC2__ = ^t__dummyXFC2__;
  3389.    
  3390.  
  3391.     const
  3392.  
  3393.         MUIKEY_RELEASE = -2;
  3394.     MUIKEY_NONE    = -1;
  3395.     MUIKEY_PRESS   = 0;
  3396.     MUIKEY_TOGGLE  = 1;
  3397.     MUIKEY_UP      = 2;
  3398.     MUIKEY_DOWN    = 3;
  3399.     MUIKEY_PAGEUP  = 4;
  3400.     MUIKEY_PAGEDOWN = 5;
  3401.     MUIKEY_TOP      = 6;
  3402.     MUIKEY_BOTTOM   = 7;
  3403.     MUIKEY_LEFT     = 8;
  3404.     MUIKEY_RIGHT    = 9;
  3405.     MUIKEY_WORDLEFT = 10;
  3406.     MUIKEY_WORDRIGHT = 11;
  3407.     MUIKEY_LINESTART = 12;
  3408.     MUIKEY_LINEEND   = 13;
  3409.     MUIKEY_GADGET_NEXT = 14;
  3410.     MUIKEY_GADGET_PREV = 15;
  3411.     MUIKEY_GADGET_OFF  = 16;
  3412.     MUIKEY_WINDOW_CLOSE = 17;
  3413.     MUIKEY_WINDOW_NEXT  = 18;
  3414.     MUIKEY_WINDOW_PREV  = 19;
  3415.     MUIKEY_HELP         = 20;
  3416.     MUIKEY_POPUP        = 21;
  3417.     MUIKEY_COUNT        = 22;
  3418.  
  3419.        MUIKEYF_PRESS = 1 shl MUIKEY_PRESS;
  3420.        MUIKEYF_TOGGLE = 1 shl MUIKEY_TOGGLE;
  3421.        MUIKEYF_UP = 1 shl MUIKEY_UP;
  3422.        MUIKEYF_DOWN = 1 shl MUIKEY_DOWN;
  3423.        MUIKEYF_PAGEUP = 1 shl MUIKEY_PAGEUP;
  3424.        MUIKEYF_PAGEDOWN = 1 shl MUIKEY_PAGEDOWN;
  3425.        MUIKEYF_TOP = 1 shl MUIKEY_TOP;
  3426.        MUIKEYF_BOTTOM = 1 shl MUIKEY_BOTTOM;
  3427.        MUIKEYF_LEFT = 1 shl MUIKEY_LEFT;
  3428.        MUIKEYF_RIGHT = 1 shl MUIKEY_RIGHT;
  3429.        MUIKEYF_WORDLEFT = 1 shl MUIKEY_WORDLEFT;
  3430.        MUIKEYF_WORDRIGHT = 1 shl MUIKEY_WORDRIGHT;
  3431.        MUIKEYF_LINESTART = 1 shl MUIKEY_LINESTART;
  3432.        MUIKEYF_LINEEND = 1 shl MUIKEY_LINEEND;
  3433.        MUIKEYF_GADGET_NEXT = 1 shl MUIKEY_GADGET_NEXT;
  3434.        MUIKEYF_GADGET_PREV = 1 shl MUIKEY_GADGET_PREV;
  3435.        MUIKEYF_GADGET_OFF = 1 shl MUIKEY_GADGET_OFF;
  3436.        MUIKEYF_WINDOW_CLOSE = 1 shl MUIKEY_WINDOW_CLOSE;
  3437.        MUIKEYF_WINDOW_NEXT = 1 shl MUIKEY_WINDOW_NEXT;
  3438.        MUIKEYF_WINDOW_PREV = 1 shl MUIKEY_WINDOW_PREV;
  3439.        MUIKEYF_HELP = 1 shl MUIKEY_HELP;
  3440.        MUIKEYF_POPUP = 1 shl MUIKEY_POPUP;
  3441.  
  3442.     { MUI_CustomClass returned by MUI_CreateCustomClass()  }
  3443.     { use for whatever you want  }
  3444.     { MUI has opened these libraries  }
  3445.     { for you automatically. You can  }
  3446.     { use them or decide to open      }
  3447.     { your libraries yourself.        }
  3448.     { pointer to super class    }
  3449.     { pointer to the new class  }
  3450.     { ... private data follows ...  }
  3451.  
  3452.     type
  3453.        tMUI_CustomClass = record
  3454.             mcc_UserData : APTR;
  3455.             mcc_UtilityBase : PLibrary;
  3456.             mcc_DOSBase : PLibrary;
  3457.             mcc_GfxBase : PLibrary;
  3458.             mcc_IntuitionBase : PLibrary;
  3459.             mcc_Super : PIClass;
  3460.             mcc_Class : PIClass;
  3461.          end;
  3462.        pMUI_CustomClass = ^tMUI_CustomClass;
  3463.  
  3464. FUNCTION MUI_NewObjectA(class_ : pChar; tags : pTagItem) : pObject_;
  3465. PROCEDURE MUI_DisposeObject(obj : pObject_);
  3466. FUNCTION MUI_RequestA(app : POINTER; win : POINTER; flags : LONGBITS; title : pChar; gadgets : pChar; format : pChar; params : POINTER) : LONGINT;
  3467. FUNCTION MUI_AllocAslRequest(typ : ULONG; tags : pTagItem) : POINTER;
  3468. FUNCTION MUI_AslRequest(req : POINTER; tags : pTagItem) : BOOLEAN;
  3469. PROCEDURE MUI_FreeAslRequest(req : POINTER);
  3470. FUNCTION MUI_Error : LONGINT;
  3471. FUNCTION MUI_SetError(errnum : LONGINT) : LONGINT;
  3472. FUNCTION MUI_GetClass(name : pCHar) : pIClass;
  3473. PROCEDURE MUI_FreeClass(cl : pIClass);
  3474. PROCEDURE MUI_RequestIDCMP(obj : pObject_; flags : ULONG);
  3475. PROCEDURE MUI_RejectIDCMP(obj : pObject_; flags : ULONG);
  3476. PROCEDURE MUI_Redraw(obj : pObject_; flags : ULONG);
  3477. FUNCTION MUI_CreateCustomClass(base : pLibrary; supername : pChar; supermcc : pMUI_CustomClass; datasize : LONGINT; dispatcher : POINTER) : pMUI_CustomClass;
  3478. FUNCTION MUI_DeleteCustomClass(mcc : pMUI_CustomClass) : BOOLEAN;
  3479. FUNCTION MUI_MakeObjectA(typ: LONGINT; params : pULONG) : pULONG;
  3480. FUNCTION MUI_Layout(obj : pObject_; l : LONGINT; t : LONGINT; w : LONGINT; h : LONGINT; flags : ULONG) : BOOLEAN;
  3481. FUNCTION MUI_ObtainPen(mri : pMUI_RenderInfo; spec : pMUI_PenSpec; flags : ULONG) : LONGINT;
  3482. PROCEDURE MUI_ReleasePen(mri : pMUI_RenderInfo; pen : LONGINT);
  3483. FUNCTION MUI_AddClipping(mri : pMUI_RenderInfo; l : INTEGER; t : INTEGER; w : INTEGER; h : INTEGER) : POINTER;
  3484. PROCEDURE MUI_RemoveClipping(mri : pMUI_RenderInfo; h : POINTER);
  3485. FUNCTION MUI_AddClipRegion(mri : pMUI_RenderInfo; region : pRegion) : POINTER;
  3486. PROCEDURE MUI_RemoveClipRegion(mri : pMUI_RenderInfo; region : POINTER);
  3487. FUNCTION MUI_BeginRefresh(mri : pMUI_RenderInfo; flags : ULONG) : BOOLEAN;
  3488. PROCEDURE MUI_EndRefresh(mri : pMUI_RenderInfo; flags : ULONG);
  3489.  
  3490.  
  3491. (*
  3492. ** some procedures to get some information about our object 
  3493. *)
  3494.  
  3495. function MUINotifyData(obj : APTR) : pMUI_NotifyData;
  3496. function MUIAreaData(obj : APTR) : pMUI_AreaData;
  3497. function MUIGlobalInfo(obj : APTR) : pMUI_GlobalInfo;
  3498. function MUIUserData(obj : APTR) : Pointer ;
  3499. function MUIRenderInfo(obj : APTR) : pMUI_RenderInfo;
  3500. function MUIPen(pen : longint): longint;
  3501. (*
  3502. ** some more specialized functions to retain information about special
  3503. ** object-data like rastport, window, etc.
  3504. **
  3505. ** NOTE: These macros may only be used in custom classes and are
  3506. ** only valid if your class is inbetween the specified methods!
  3507. *)
  3508.  
  3509. function OBJ_App(obj : APTR) : pObject_;       (* valid between MUIM_Setup/Cleanup *)
  3510. function OBJ_Win(obj : APTR) : pObject_;       (* valid between MUIM_Setup/Cleanup *)
  3511. function OBJ_Dri(obj : APTR) : pDrawInfo;          (* valid between MUIM_Setup/Cleanup *)
  3512. function OBJ_Screen(obj : APTR) : pScreen;         (* valid between MUIM_Setup/Cleanup *)
  3513. function OBJ_Pens(obj : APTR) : pWord;             (* valid between MUIM_Setup/Cleanup *)
  3514. function OBJ_Window(obj : APTR) : pWindow;         (* valid between MUIM_Show/Hide *)
  3515. function OBJ_Rp(obj : APTR) : pRastPort;           (* valid between MUIM_Show/Hide *)
  3516. function OBJ_Left(obj : APTR) : INTEGER;           (* valid during MUIM_Draw *)
  3517. function OBJ_Top(obj : APTR) : INTEGER;            (* valid during MUIM_Draw *)
  3518. function OBJ_Width(obj : APTR) : INTEGER;          (* valid during MUIM_Draw *)
  3519. function OBJ_Height(obj : APTR) : INTEGER;         (* valid during MUIM_Draw *)
  3520. function OBJ_Right(obj : APTR) : INTEGER;          (* valid during MUIM_Draw *)
  3521. function OBJ_Bottom(obj : APTR) : INTEGER;         (* valid during MUIM_Draw *)
  3522. function OBJ_AddLeft(obj : APTR) : INTEGER;        (* valid during MUIM_Draw *)
  3523. function OBJ_AddTop(obj : APTR) : INTEGER;         (* valid during MUIM_Draw *)
  3524. function OBJ_SubWidth(obj : APTR) : INTEGER;       (* valid during MUIM_Draw *)
  3525. function OBJ_SubHeight(obj : APTR) : INTEGER;      (* valid during MUIM_Draw *)
  3526. function OBJ_MLeft(obj : APTR) : INTEGER;          (* valid during MUIM_Draw *)
  3527. function OBJ_MTop(obj : APTR) : INTEGER;           (* valid during MUIM_Draw *)
  3528. function OBJ_MWidth(obj : APTR) : INTEGER;         (* valid during MUIM_Draw *)
  3529. function OBJ_MHeight(obj : APTR) : INTEGER;        (* valid during MUIM_Draw *)
  3530. function OBJ_MRight(obj : APTR) : INTEGER;         (* valid during MUIM_Draw *)
  3531. function OBJ_MBottom(obj : APTR) : INTEGER;        (* valid during MUIM_Draw *)
  3532. function OBJ_Font(obj : APTR) : pTextFont;         (* valid between MUIM_Setup/Cleanup *)
  3533. function OBJ_MinWidth(obj : APTR) : ULONG;         (* valid between MUIM_Show/Hide *)
  3534. function OBJ_MinHeight(obj : APTR) : ULONG;        (* valid between MUIM_Show/Hide *)
  3535. function OBJ_MaxWidth(obj : APTR) : ULONG;         (* valid between MUIM_Show/Hide *)
  3536. function OBJ_MaxHeight(obj : APTR) : ULONG;        (* valid between MUIM_Show/Hide *)
  3537. function OBJ_DefWidth(obj : APTR) : ULONG;         (* valid between MUIM_Show/Hide *)
  3538. function OBJ_DefHeight(obj : APTR) : ULONG;        (* valid between MUIM_Show/Hide *)
  3539. function OBJ_Flags(obj : APTR) : ULONG;
  3540.  
  3541. function OBJ_Between(a,x,b : Integer): boolean;
  3542. function OBJ_IsInObject(x,y : Integer; obj : pObject_): boolean;
  3543.  
  3544. function MUIV_Window_AltHeight_MinMax(p : longint) : longint;
  3545. function MUIV_Window_AltHeight_Visible(p : longint) : longint;
  3546. function MUIV_Window_AltHeight_Screen(p : longint) : longint;
  3547. function MUIV_Window_AltTopEdge_Delta(p : longint) : longint;
  3548. function MUIV_Window_AltWidth_MinMax(p : longint) : longint;
  3549. function MUIV_Window_AltWidth_Visible(p : longint) : longint;
  3550. function MUIV_Window_AltWidth_Screen(p : longint) : longint;
  3551. function MUIV_Window_Height_MinMax(p : longint) : longint;
  3552. function MUIV_Window_Height_Visible(p : longint) : longint;
  3553. function MUIV_Window_Height_Screen(p : longint) : longint;
  3554. function MUIV_Window_TopEdge_Delta(p : longint) : longint;
  3555. function MUIV_Window_Width_MinMax(p : longint) : longint;
  3556. function MUIV_Window_Width_Visible(p : longint) : longint;
  3557. function MUIV_Window_Width_Screen(p : longint) : longint;
  3558.  
  3559.  
  3560. VAR MUIMasterBase : pLibrary;
  3561.     muimaster_exit : pointer;
  3562.  
  3563. implementation
  3564.  
  3565. uses msgbox;
  3566.  
  3567. function MUINotifyData(obj : APTR) : pMUI_NotifyData;
  3568. begin
  3569.     MUINotifyData := pMUI_NotifyData(@p__dummyXFC2__(obj)^.mnd);
  3570. end;
  3571.  
  3572. function MUIAreaData(obj : APTR) : pMUI_AreaData;
  3573. begin
  3574.     MUIAreaData := pMUI_AreaData(@p__dummyXFC2__(obj)^.mad);
  3575. end;
  3576.  
  3577. function MUIGlobalInfo(obj : APTR) : pMUI_GlobalInfo;
  3578. begin
  3579.     MUIGlobalInfo := pMUI_GlobalInfo(p__dummyXFC2__(obj)^.mnd.mnd_GlobalInfo);
  3580. end;
  3581.  
  3582. function MUIUserData(obj : APTR) : Pointer ;
  3583. begin
  3584.     MUIUserData := Pointer(p__dummyXFC2__(obj)^.mnd.mnd_GlobalInfo);
  3585. end;
  3586.  
  3587. function MUIRenderInfo(obj : APTR) : pMUI_RenderInfo;
  3588. begin
  3589.     MUIRenderInfo := pMUI_RenderInfo(p__dummyXFC2__(obj)^.mad.mad_RenderInfo);
  3590. end;
  3591.  
  3592. function MUIPen(pen : longint): longint;
  3593. begin
  3594.     MUIPen := longint(pen*MUIPEN_Mask);
  3595. end;
  3596.  
  3597. function OBJ_App(obj : APTR) : pObject_;       (* valid between MUIM_Setup/Cleanup *)
  3598. begin
  3599.     OBJ_App := pMUI_GlobalInfo(obj)^.mgi_ApplicationObject;
  3600. end;
  3601.  
  3602. function OBJ_Win(obj : APTR) : pObject_;       (* valid between MUIM_Setup/Cleanup *)
  3603. begin
  3604.     OBJ_Win := pMUI_RenderInfo(obj)^.mri_WindowObject;
  3605. end;
  3606.  
  3607. function OBJ_Dri(obj : APTR) : pDrawInfo;          (* valid between MUIM_Setup/Cleanup *)
  3608. begin
  3609.     OBJ_Dri := pMUI_RenderInfo(obj)^.mri_DrawInfo;
  3610. end;    
  3611.  
  3612. function OBJ_Screen(obj : APTR) : pScreen;         (* valid between MUIM_Setup/Cleanup *)
  3613. begin
  3614.     OBJ_Screen := pMUI_RenderInfo(obj)^.mri_Screen;
  3615. end;
  3616.  
  3617. function OBJ_Pens(obj : APTR) : pWord;      (* valid between MUIM_Setup/Cleanup *)
  3618. begin
  3619.     OBJ_Pens := pMUI_RenderInfo(obj)^.mri_Pens;
  3620. end;
  3621.  
  3622. function OBJ_Window(obj : APTR) : pWindow;         (* valid between MUIM_Show/Hide *)
  3623. begin
  3624.     OBJ_Window := PMUI_RenderInfo(obj)^.mri_Window;
  3625. end;
  3626.  
  3627. function OBJ_Rp(obj : APTR) : pRastPort;           (* valid between MUIM_Show/Hide *)
  3628. begin
  3629.     OBJ_Rp := pMUI_RenderInfo(obj)^.mri_RastPort;
  3630. end;
  3631.  
  3632. function OBJ_Left(obj : APTR) : INTEGER;           (* valid during MUIM_Draw *)
  3633. begin
  3634.     OBJ_Left := pMUI_AreaData(obj)^.mad_Box.Left;
  3635. end;
  3636.  
  3637. function OBJ_Top(obj : APTR) : INTEGER;            (* valid during MUIM_Draw *)
  3638. begin
  3639.     OBJ_Top := pMUI_AreaData(obj)^.mad_Box.Top;
  3640. end;
  3641.  
  3642. function OBJ_Width(obj : APTR) : INTEGER;          (* valid during MUIM_Draw *)
  3643. begin
  3644.     OBJ_Width := pMUI_AreaData(obj)^.mad_Box.Width;
  3645. end;
  3646.  
  3647. function OBJ_Height(obj : APTR) : INTEGER;         (* valid during MUIM_Draw *)
  3648. begin
  3649.     OBJ_Height := pMUI_AreaData(obj)^.mad_Box.Height;
  3650. end;
  3651.  
  3652. function OBJ_Right(obj : APTR) : INTEGER;          (* valid during MUIM_Draw *)
  3653. begin
  3654.     OBJ_Right := OBJ_Left(obj) + OBJ_Width(obj) -1;
  3655. end;
  3656.  
  3657. function OBJ_Bottom(obj : APTR) : INTEGER;         (* valid during MUIM_Draw *)
  3658. begin
  3659.     OBJ_Bottom := OBJ_Top(obj) + OBJ_Height(obj) -1;
  3660. end;
  3661.  
  3662. function OBJ_AddLeft(obj : APTR) : INTEGER;        (* valid during MUIM_Draw *)
  3663. begin
  3664.     OBJ_AddLeft := pMUI_AreaData(obj)^.mad_AddLeft;
  3665. end;
  3666.  
  3667. function OBJ_AddTop(obj : APTR) : INTEGER;         (* valid during MUIM_Draw *)
  3668. begin
  3669.     OBJ_AddTop := pMUI_AreaData(obj)^.mad_AddTop;
  3670. end;
  3671.  
  3672. function OBJ_SubWidth(obj : APTR) : INTEGER;       (* valid during MUIM_Draw *)
  3673. begin
  3674.     OBJ_SubWidth := pMUI_AreaData(obj)^.mad_SubWidth;
  3675. end;
  3676.  
  3677. function OBJ_SubHeight(obj : APTR) : INTEGER;      (* valid during MUIM_Draw *)
  3678. begin
  3679.     OBJ_SubHeight := pMUI_AreaData(obj)^.mad_SubHeight;
  3680. end;
  3681.  
  3682. function OBJ_MLeft(obj : APTR) : INTEGER;          (* valid during MUIM_Draw *)
  3683. begin
  3684.     OBJ_MLeft := OBJ_Left(obj) + OBJ_AddLeft(obj);
  3685. end;
  3686.  
  3687. function OBJ_MTop(obj : APTR) : INTEGER;           (* valid during MUIM_Draw *)
  3688. begin
  3689.     OBJ_MTop := OBJ_Top(obj) + OBJ_AddTop(obj);
  3690. end;
  3691.  
  3692. function OBJ_MWidth(obj : APTR) : INTEGER;         (* valid during MUIM_Draw *)
  3693. begin
  3694.     OBJ_MWidth := OBJ_Width(obj) -OBJ_SubWidth(obj);
  3695. end;
  3696.  
  3697. function OBJ_MHeight(obj : APTR) : INTEGER;        (* valid during MUIM_Draw *)
  3698. begin
  3699.     OBJ_MHeight := OBJ_Height(obj) - OBJ_SubHeight(obj);
  3700. end;
  3701.  
  3702. function OBJ_MRight(obj : APTR) : INTEGER;         (* valid during MUIM_Draw *)
  3703. begin
  3704.     OBJ_MRight := OBJ_MLeft(obj) + OBJ_MWidth(obj) -1;
  3705. end;
  3706.  
  3707. function OBJ_MBottom(obj : APTR) : INTEGER;        (* valid during MUIM_Draw *)
  3708. begin
  3709.     OBJ_MBottom := OBJ_MTop(obj) + OBJ_MHeight(obj) -1;
  3710. end;
  3711.  
  3712. function OBJ_Font(obj : APTR) : pTextFont;         (* valid between MUIM_Setup/Cleanup *)
  3713. begin
  3714.     OBJ_Font := pMUI_AreaData(obj)^.mad_Font;
  3715. end;
  3716.  
  3717. function OBJ_MinWidth(obj : APTR) : ULONG;         (* valid between MUIM_Show/Hide *)
  3718. begin
  3719.     OBJ_MinWidth := pMUI_AreaData(obj)^.mad_MinMax.MinWidth;
  3720. end;
  3721.  
  3722. function OBJ_MinHeight(obj : APTR) : ULONG;        (* valid between MUIM_Show/Hide *)
  3723. begin
  3724.     OBJ_MinHeight := pMUI_AreaData(obj)^.mad_MinMax.MinHeight;
  3725. end;
  3726.  
  3727. function OBJ_MaxWidth(obj : APTR) : ULONG;         (* valid between MUIM_Show/Hide *)
  3728. begin
  3729.     OBJ_maxWidth := pMUI_AreaData(obj)^.mad_MinMax.MaxWidth;
  3730. end;
  3731.  
  3732. function OBJ_MaxHeight(obj : APTR) : ULONG;        (* valid between MUIM_Show/Hide *)
  3733. begin
  3734.     OBJ_maxHeight := pMUI_AreaData(obj)^.mad_MinMax.MaxHeight;
  3735. end;
  3736.  
  3737. function OBJ_DefWidth(obj : APTR) : ULONG;         (* valid between MUIM_Show/Hide *)
  3738. begin
  3739.     OBJ_DefWidth := pMUI_AreaData(obj)^.mad_MinMax.DefWidth;
  3740. end;
  3741.  
  3742. function OBJ_DefHeight(obj : APTR) : ULONG;        (* valid between MUIM_Show/Hide *)
  3743. begin
  3744.     OBJ_DefHeight := pMUI_AreaData(obj)^.mad_MinMax.DefHeight;
  3745. end;
  3746.  
  3747. function OBJ_Flags(obj : APTR) : ULONG; 
  3748. begin
  3749.     OBJ_Flags := pMUI_AreaData(obj)^.mad_Flags;
  3750. end;
  3751.  
  3752. (*
  3753. ** 2 useful procedures for testing if some coordinates are inside your object
  3754. ** (converted from the ones in class3.c. So look there how to use... )
  3755. *)
  3756.  
  3757. function OBJ_Between(a,x,b : Integer): boolean;
  3758. begin
  3759.     OBJ_Between := ((x>=a) and (x<=b));
  3760. end;
  3761.  
  3762. function OBJ_IsInObject(x,y : Integer; obj : pObject_): boolean;
  3763. begin
  3764.     OBJ_IsInObject := (OBJ_Between(OBJ_MLeft(obj),x,OBJ_MRight(obj))
  3765.         and OBJ_Between(OBJ_MTop(obj),y,OBJ_MBottom(obj)));
  3766. end;
  3767.  
  3768. function MUIV_Window_AltHeight_MinMax(p : longint) : longint;
  3769. begin
  3770.     MUIV_Window_AltHeight_MinMax := (0 - p);
  3771. end;
  3772.  
  3773. function MUIV_Window_AltHeight_Visible(p : longint) : longint;
  3774. begin
  3775.     MUIV_Window_AltHeight_Visible := (-100 - (p));
  3776. end;
  3777.  
  3778. function MUIV_Window_AltHeight_Screen(p : longint) : longint;
  3779. begin
  3780.     MUIV_Window_AltHeight_Screen := (-200 - (p));
  3781. end;
  3782.  
  3783. function MUIV_Window_AltTopEdge_Delta(p : longint) : longint;
  3784. begin
  3785.     MUIV_Window_AltTopEdge_Delta := (-3 - (p));
  3786. end;
  3787.  
  3788. function MUIV_Window_AltWidth_MinMax(p : longint) : longint;
  3789. begin
  3790.     MUIV_Window_AltWidth_MinMax := 0 - p;
  3791. end;
  3792.  
  3793. function MUIV_Window_AltWidth_Visible(p : longint) : longint;
  3794. begin
  3795.     MUIV_Window_AltWidth_Visible := (-100 - (p));
  3796. end;
  3797.  
  3798. function MUIV_Window_AltWidth_Screen(p : longint) : longint;
  3799. begin
  3800.     MUIV_Window_AltWidth_Screen := (-200 - (p));
  3801. end;
  3802.  
  3803. function MUIV_Window_Height_MinMax(p : longint) : longint;
  3804. begin
  3805.     MUIV_Window_Height_MinMax := 0 - p;
  3806. end;
  3807.  
  3808. function MUIV_Window_Height_Visible(p : longint) : longint;
  3809. begin
  3810.     MUIV_Window_Height_Visible := (-100 - (p));
  3811. end;
  3812.  
  3813. function MUIV_Window_Height_Screen(p : longint) : longint;
  3814. begin
  3815.     MUIV_Window_Height_Screen := (-200 - (p));
  3816. end;
  3817.  
  3818. function MUIV_Window_TopEdge_Delta(p : longint) : longint;
  3819. begin
  3820.     MUIV_Window_TopEdge_Delta := (-3 - (p));
  3821. end;
  3822.  
  3823. function MUIV_Window_Width_MinMax(p : longint) : longint;
  3824. begin
  3825.     MUIV_Window_Width_MinMax := 0 - p;
  3826. end;
  3827.  
  3828. function MUIV_Window_Width_Visible(p : longint) : longint;
  3829. begin
  3830.     MUIV_Window_Width_Visible := (-100 - (p));
  3831. end;
  3832.  
  3833. function MUIV_Window_Width_Screen(p : longint) : longint;
  3834. begin
  3835.     MUIV_Window_Width_Screen := (-200 - (p));
  3836. end;
  3837.  
  3838. FUNCTION MUI_NewObjectA(class_ : pCHar; tags : pTagItem) : pObject_;
  3839. BEGIN
  3840.   ASM
  3841.     MOVE.L    A6,-(A7)
  3842.     MOVEA.L    class_,A0
  3843.     MOVEA.L    tags,A1
  3844.     MOVEA.L    MUIMasterBase,A6
  3845.     JSR    -030(A6)
  3846.     MOVEA.L    (A7)+,A6
  3847.     MOVE.L    D0,@RESULT
  3848.   END;
  3849. END;
  3850.  
  3851. PROCEDURE MUI_DisposeObject(obj : pObject_);
  3852. BEGIN
  3853.   ASM
  3854.     MOVE.L    A6,-(A7)
  3855.     MOVEA.L    obj,A0
  3856.     MOVEA.L    MUIMasterBase,A6
  3857.     JSR    -036(A6)
  3858.     MOVEA.L    (A7)+,A6
  3859.   END;
  3860. END;
  3861.  
  3862. FUNCTION MUI_RequestA(app : POINTER; win : POINTER; flags : LONGBITS; title : pCHar; gadgets : pChar; format : pChar; params : POINTER) : LONGINT;
  3863. BEGIN
  3864.   ASM
  3865.     MOVE.L    A6,-(A7)
  3866.     MOVE.L    app,D0
  3867.     MOVE.L    win,D1
  3868.     MOVE.L    flags,D2
  3869.     MOVEA.L    title,A0
  3870.     MOVEA.L    gadgets,A1
  3871.     MOVEA.L    format,A2
  3872.     MOVEA.L    params,A3
  3873.     MOVEA.L    MUIMasterBase,A6
  3874.     JSR    -042(A6)
  3875.     MOVEA.L    (A7)+,A6
  3876.     MOVE.L    D0,@RESULT
  3877.   END;
  3878. END;
  3879.  
  3880. FUNCTION MUI_AllocAslRequest(typ : ULONG; tags : pTagItem) : POINTER;
  3881. BEGIN
  3882.   ASM
  3883.     MOVE.L    A6,-(A7)
  3884.     MOVE.L    typ,D0
  3885.     MOVEA.L    tags,A0
  3886.     MOVEA.L    MUIMasterBase,A6
  3887.     JSR    -048(A6)
  3888.     MOVEA.L    (A7)+,A6
  3889.     MOVE.L    D0,@RESULT
  3890.   END;
  3891. END;
  3892.  
  3893. FUNCTION MUI_AslRequest(req : POINTER; tags : pTagItem) : BOOLEAN;
  3894. BEGIN
  3895.   ASM
  3896.     MOVE.L    A6,-(A7)
  3897.     MOVEA.L    req,A0
  3898.     MOVEA.L    tags,A1
  3899.     MOVEA.L    MUIMasterBase,A6
  3900.     JSR    -054(A6)
  3901.     MOVEA.L    (A7)+,A6
  3902.     TST.W    D0
  3903.     BEQ.B    @end
  3904.     MOVEQ    #1,D0
  3905.   @end:    MOVE.B    D0,@RESULT
  3906.   END;
  3907. END;
  3908.  
  3909. PROCEDURE MUI_FreeAslRequest(req : POINTER);
  3910. BEGIN
  3911.   ASM
  3912.     MOVE.L    A6,-(A7)
  3913.     MOVEA.L    req,A0
  3914.     MOVEA.L    MUIMasterBase,A6
  3915.     JSR    -060(A6)
  3916.     MOVEA.L    (A7)+,A6
  3917.   END;
  3918. END;
  3919.  
  3920. FUNCTION MUI_Error : LONGINT;
  3921. BEGIN
  3922.   ASM
  3923.     MOVE.L    A6,-(A7)
  3924.     MOVEA.L    MUIMasterBase,A6
  3925.     JSR    -066(A6)
  3926.     MOVEA.L    (A7)+,A6
  3927.     MOVE.L    D0,@RESULT
  3928.   END;
  3929. END;
  3930.  
  3931. FUNCTION MUI_SetError(errnum : LONGINT) : LONGINT;
  3932. BEGIN
  3933.   ASM
  3934.     MOVE.L    A6,-(A7)
  3935.     MOVE.L    errnum,D0
  3936.     MOVEA.L    MUIMasterBase,A6
  3937.     JSR    -072(A6)
  3938.     MOVEA.L    (A7)+,A6
  3939.     MOVE.L    D0,@RESULT
  3940.   END;
  3941. END;
  3942.  
  3943. FUNCTION MUI_GetClass(name : pChar) : pIClass;
  3944. BEGIN
  3945.   ASM
  3946.     MOVE.L    A6,-(A7)
  3947.     MOVEA.L    name,A0
  3948.     MOVEA.L    MUIMasterBase,A6
  3949.     JSR    -078(A6)
  3950.     MOVEA.L    (A7)+,A6
  3951.     MOVE.L    D0,@RESULT
  3952.   END;
  3953. END;
  3954.  
  3955. PROCEDURE MUI_FreeClass(cl : pIClass);
  3956. BEGIN
  3957.   ASM
  3958.     MOVE.L    A6,-(A7)
  3959.     MOVEA.L    cl,A0
  3960.     MOVEA.L    MUIMasterBase,A6
  3961.     JSR    -084(A6)
  3962.     MOVEA.L    (A7)+,A6
  3963.   END;
  3964. END;
  3965.  
  3966. PROCEDURE MUI_RequestIDCMP(obj : pObject_; flags : ULONG);
  3967. BEGIN
  3968.   ASM
  3969.     MOVE.L    A6,-(A7)
  3970.     MOVEA.L    obj,A0
  3971.     MOVE.L    flags,D0
  3972.     MOVEA.L    MUIMasterBase,A6
  3973.     JSR    -090(A6)
  3974.     MOVEA.L    (A7)+,A6
  3975.   END;
  3976. END;
  3977.  
  3978. PROCEDURE MUI_RejectIDCMP(obj : pObject_; flags : ULONG);
  3979. BEGIN
  3980.   ASM
  3981.     MOVE.L    A6,-(A7)
  3982.     MOVEA.L    obj,A0
  3983.     MOVE.L    flags,D0
  3984.     MOVEA.L    MUIMasterBase,A6
  3985.     JSR    -096(A6)
  3986.     MOVEA.L    (A7)+,A6
  3987.   END;
  3988. END;
  3989.  
  3990. PROCEDURE MUI_Redraw(obj : pObject_; flags : ULONG);
  3991. BEGIN
  3992.   ASM
  3993.     MOVE.L    A6,-(A7)
  3994.     MOVEA.L    obj,A0
  3995.     MOVE.L    flags,D0
  3996.     MOVEA.L    MUIMasterBase,A6
  3997.     JSR    -102(A6)
  3998.     MOVEA.L    (A7)+,A6
  3999.   END;
  4000. END;
  4001.  
  4002. FUNCTION MUI_CreateCustomClass(base : pLibrary; supername : pChar; supermcc : pMUI_CustomClass; datasize : LONGINT; dispatcher : POINTER) : pMUI_CustomClass;
  4003. BEGIN
  4004.   ASM
  4005.     MOVE.L    A6,-(A7)
  4006.     MOVEA.L    base,A0
  4007.     MOVEA.L    supername,A1
  4008.     MOVEA.L    supermcc,A2
  4009.     MOVE.L    datasize,D0
  4010.     MOVEA.L    dispatcher,A3
  4011.     MOVEA.L    MUIMasterBase,A6
  4012.     JSR    -108(A6)
  4013.     MOVEA.L    (A7)+,A6
  4014.     MOVE.L    D0,@RESULT
  4015.   END;
  4016. END;
  4017.  
  4018. FUNCTION MUI_DeleteCustomClass(mcc : pMUI_CustomClass) : BOOLEAN;
  4019. BEGIN
  4020.   ASM
  4021.     MOVE.L    A6,-(A7)
  4022.     MOVEA.L    mcc,A0
  4023.     MOVEA.L    MUIMasterBase,A6
  4024.     JSR    -114(A6)
  4025.     MOVEA.L    (A7)+,A6
  4026.     TST.W    D0
  4027.     BEQ.B    @end
  4028.     MOVEQ    #1,D0
  4029.   @end:    MOVE.B    D0,@RESULT
  4030.   END;
  4031. END;
  4032.  
  4033. FUNCTION MUI_MakeObjectA(typ : LONGINT; params : pULONG) : pObject_;
  4034. BEGIN
  4035.   ASM
  4036.     MOVE.L    A6,-(A7)
  4037.     MOVE.L    typ,D0
  4038.     MOVEA.L    params,A0
  4039.     MOVEA.L    MUIMasterBase,A6
  4040.     JSR    -120(A6)
  4041.     MOVEA.L    (A7)+,A6
  4042.     MOVE.L    D0,@RESULT
  4043.   END;
  4044. END;
  4045.  
  4046. FUNCTION MUI_Layout(obj : pObject_; l : LONGINT; t : LONGINT; w : LONGINT; h : LONGINT; flags : ULONG) : BOOLEAN;
  4047. BEGIN
  4048.   ASM
  4049.     MOVE.L    A6,-(A7)
  4050.     MOVEA.L    obj,A0
  4051.     MOVE.L    l,D0
  4052.     MOVE.L    t,D1
  4053.     MOVE.L    w,D2
  4054.     MOVE.L    h,D3
  4055.     MOVE.L    flags,D4
  4056.     MOVEA.L    MUIMasterBase,A6
  4057.     JSR    -126(A6)
  4058.     MOVEA.L    (A7)+,A6
  4059.     TST.W    D0
  4060.     BEQ.B    @end
  4061.     MOVEQ    #1,D0
  4062.   @end:    MOVE.B    D0,@RESULT
  4063.   END;
  4064. END;
  4065.  
  4066. FUNCTION MUI_ObtainPen(mri : pMUI_RenderInfo; spec : pMUI_PenSpec; flags : ULONG) : LONGINT;
  4067. BEGIN
  4068.   ASM
  4069.     MOVE.L    A6,-(A7)
  4070.     MOVEA.L    mri,A0
  4071.     MOVEA.L    spec,A1
  4072.     MOVE.L    flags,D0
  4073.     MOVEA.L    MUIMasterBase,A6
  4074.     JSR    -156(A6)
  4075.     MOVEA.L    (A7)+,A6
  4076.     MOVE.L    D0,@RESULT
  4077.   END;
  4078. END;
  4079.  
  4080. PROCEDURE MUI_ReleasePen(mri : pMUI_RenderInfo; pen : LONGINT);
  4081. BEGIN
  4082.   ASM
  4083.     MOVE.L    A6,-(A7)
  4084.     MOVEA.L    mri,A0
  4085.     MOVE.L    pen,D0
  4086.     MOVEA.L    MUIMasterBase,A6
  4087.     JSR    -162(A6)
  4088.     MOVEA.L    (A7)+,A6
  4089.   END;
  4090. END;
  4091.  
  4092. FUNCTION MUI_AddClipping(mri : pMUI_RenderInfo; l : INTEGER; t : INTEGER; w : INTEGER; h : INTEGER) : POINTER;
  4093. BEGIN
  4094.   ASM
  4095.     MOVE.L    A6,-(A7)
  4096.     MOVEA.L    mri,A0
  4097.     MOVE.L    l,D0
  4098.     MOVE.L    t,D1
  4099.     MOVE.L    w,D2
  4100.     MOVE.L    h,D3
  4101.     MOVEA.L    MUIMasterBase,A6
  4102.     JSR    -168(A6)
  4103.     MOVEA.L    (A7)+,A6
  4104.     MOVE.L    D0,@RESULT
  4105.   END;
  4106. END;
  4107.  
  4108. PROCEDURE MUI_RemoveClipping(mri : pMUI_RenderInfo; h : POINTER);
  4109. BEGIN
  4110.   ASM
  4111.     MOVE.L    A6,-(A7)
  4112.     MOVEA.L    mri,A0
  4113.     MOVEA.L    h,A1
  4114.     MOVEA.L    MUIMasterBase,A6
  4115.     JSR    -174(A6)
  4116.     MOVEA.L    (A7)+,A6
  4117.   END;
  4118. END;
  4119.  
  4120. FUNCTION MUI_AddClipRegion(mri : pMUI_RenderInfo; region : pRegion) : POINTER;
  4121. BEGIN
  4122.   ASM
  4123.     MOVE.L    A6,-(A7)
  4124.     MOVEA.L    mri,A0
  4125.     MOVEA.L    region,A1
  4126.     MOVEA.L    MUIMasterBase,A6
  4127.     JSR    -180(A6)
  4128.     MOVEA.L    (A7)+,A6
  4129.     MOVE.L    D0,@RESULT
  4130.   END;
  4131. END;
  4132.  
  4133. PROCEDURE MUI_RemoveClipRegion(mri : pMUI_RenderInfo; region : POINTER);
  4134. BEGIN
  4135.   ASM
  4136.     MOVE.L    A6,-(A7)
  4137.     MOVEA.L    mri,A0
  4138.     MOVEA.L    region,A1
  4139.     MOVEA.L    MUIMasterBase,A6
  4140.     JSR    -186(A6)
  4141.     MOVEA.L    (A7)+,A6
  4142.   END;
  4143. END;
  4144.  
  4145. FUNCTION MUI_BeginRefresh(mri : pMUI_RenderInfo; flags : ULONG) : BOOLEAN;
  4146. BEGIN
  4147.   ASM
  4148.     MOVE.L    A6,-(A7)
  4149.     MOVEA.L    mri,A0
  4150.     MOVE.L    flags,D0
  4151.     MOVEA.L    MUIMasterBase,A6
  4152.     JSR    -192(A6)
  4153.     MOVEA.L    (A7)+,A6
  4154.     TST.W    D0
  4155.     BEQ.B    @end
  4156.     MOVEQ    #1,D0
  4157.   @end:    MOVE.B    D0,@RESULT
  4158.   END;
  4159. END;
  4160.  
  4161. PROCEDURE MUI_EndRefresh(mri : pMUI_RenderInfo; flags : ULONG);
  4162. BEGIN
  4163.   ASM
  4164.     MOVE.L    A6,-(A7)
  4165.     MOVEA.L    mri,A0
  4166.     MOVE.L    flags,D0
  4167.     MOVEA.L    MUIMasterBase,A6
  4168.     JSR    -198(A6)
  4169.     MOVEA.L    (A7)+,A6
  4170.   END;
  4171. END;
  4172.  
  4173. PROCEDURE CloseMuiMasterLibrary;
  4174. BEGIN
  4175.      ExitProc := muimaster_exit;
  4176.      if MUIMasterBase <> nil then begin
  4177.         CloseLibrary(MUIMasterBase);
  4178.         MUIMasterBase := nil;
  4179.      end;
  4180. END;
  4181.                                                            
  4182. const
  4183.     VERSION : string[2] = '11';
  4184.  
  4185. BEGIN
  4186.     MUIMasterBase := nil;
  4187.     MUIMasterBase := OpenLibrary(MUIMASTER_NAME,MUIMASTER_VMIN);
  4188.     IF MUIMasterBase <> NIL THEN begin
  4189.         muimaster_exit := ExitProc;
  4190.         ExitProc := @CloseMuiMasterLibrary;
  4191.     end else begin
  4192.          MessageBox('FPC Pascal Error',
  4193.                     'Can''t open muimaster.library version ' + 
  4194.                     VERSION +
  4195.                     chr(10) + 
  4196.                     'Deallocating resources and closing down',
  4197.                     'Oops');
  4198.         halt(20);
  4199.     end;
  4200.  
  4201.  
  4202. end.
  4203.